Filled Contour Plot of Test Function
It is also helpful to color the plot between the contours to show a more complete surface.
Again, the colors are just a simple linear interpolation, not the true function evaluation. This must be kept in mind on more complex functions where fine detail will not be shown.
We can fill the contour plot using the contourf() version of the function that takes the same arguments.
create a filled contour plot with 50 levels and jet color scheme
pyplot.contourf(x, y, results, levels=50, cmap=‘jet’)
We can also show the optima on the plot, in this case as a white star that will stand out against the blue background color of the lowest part of the plot.
define the known function optima
optima_x = [0.0, 0.0]
draw the function optima as a white star
pyplot.plot([optima_x[0]], [optima_x[1]], ‘*’, color=‘white’)
Tying this together, the complete example of a filled contour plot with the optima marked is listed below.
filled contour plot for 2d objective function and show the optima
from numpy import arange
from numpy import meshgrid
from matplotlib import pyplot
objective function
def objective(x, y):
return x2.0 + y2.0
define range for input
r_min, r_max = -5.0, 5.0
sample input range uniformly at 0.1 increments
xaxis = arange(r_min, r_max, 0.1)
yaxis = arange(r_min, r_max, 0.1)
create a mesh from the axis
x, y = meshgrid(xaxis, yaxis)
compute targets
results = objective(x, y)
create a filled contour plot with 50 levels and jet color scheme
pyplot.contourf(x, y, results, levels=50, cmap=‘jet’)
define the known function optima
optima_x = [0.0, 0.0]
draw the function optima as a white star
pyplot.plot([optima_x[0]], [optima_x[1]], ‘*’, color=‘white’)
show the plot
pyplot.show()
Running the example creates the filled contour plot that gives a better idea of the shape of the objective function.
The optima at [x=0, y=0] is then marked clearly with a white star.