import matplotlib as mpl
from matplotlib import pyplot
import numpy as np
# make values from -5 to 5, for this example
zvals = np.random.rand(100,100)*10-5
# make a color map of fixed colors
cmap = mpl.colors.ListedColormap(['blue','black','red'])
bounds=[-6,-2,2,6]
norm = mpl.colors.BoundaryNorm(bounds, cmap.N)
# tell imshow about color map so that only set colors are used
img = pyplot.imshow(zvals,interpolation='nearest',
cmap = cmap,norm=norm)
# make a color bar
pyplot.colorbar(img,cmap=cmap,
norm=norm,boundaries=bounds,ticks=[-5,0,5])
pyplot.show()
Matplotlib具有用于绘制数组的
imshow
方法:这就是它的样子:
颜色栏设置的详细信息取自matplotlib示例:colorbar_only.py.它解释了
boundaries
的数目需要比颜色数目大一个。编辑
您应该note,即
imshow
接受origin
关键字,该关键字设置分配第一个点的位置。默认值是“左上角”,这就是为什么在我发布的绘图中,y轴左上角有0,左下角有99(未显示)。另一种方法是设置origin="lower"
,以便在左下角绘制第一个点。编辑2
如果需要渐变而不是离散颜色贴图,请通过linearly interpolating通过一系列颜色生成颜色贴图:
这会产生:
编辑3
要添加网格,如example所示,请使用
grid
方法。将网格颜色设置为“白色”可以很好地与颜色映射使用的颜色配合使用(即默认的黑色不会很好地显示)。在
savefig
调用生成此绘图之前包含此内容(为清晰起见,使用11x11网格生成): matplotlibdocumentation中描述了grid
的许多选项。你可能对linewidth
感兴趣。使用matplotlib怎么样?
这表明:
相关问题 更多 >
编程相关推荐