我想用matplotlib做一个等高线图,用特定的等高线,重要的代码如下:
levels = [-5, -3,-2,-1, 0,1, 2,5,10,17.5]
cax = ax1.contourf(X,Y,Z,levels)
#some similar code
最后,是等高线图的比例是在下面的图片,然而,我不喜欢之间的轮廓(-5,0)成为深蓝色和紫色的唯一变体,我如何才能使色标更多样化,而不需要改变规模?
我想用matplotlib做一个等高线图,用特定的等高线,重要的代码如下:
levels = [-5, -3,-2,-1, 0,1, 2,5,10,17.5]
cax = ax1.contourf(X,Y,Z,levels)
#some similar code
最后,是等高线图的比例是在下面的图片,然而,我不喜欢之间的轮廓(-5,0)成为深蓝色和紫色的唯一变体,我如何才能使色标更多样化,而不需要改变规模?
1条答案
按热度按时间zour9fqk1#
有几样东西可以帮助你
1.使用不同的色彩Map表(例如
cm.PRGrn
)1.使用
ax.contour(...)
绘制跨不同标高边界的等高线1.不要使用
ax.contourf(...)
,而是ax.imshow(...)
和ax.contour(...)
的组合,如右边的子图所示;注意两个颜色条的差异。这是用于生成顶部图形的代码。
Matplotlib's example建议使用在填充轮廓对象中重新计算的精确
levels
;也注意ax.contourf
的参数中的extend='both'
。ax.imshow
的代码相对简单,请注意使用extent
来获得正确的轴限制,origin='lower'
使 y 轴向上,以及(可选)使用TwoSlopeNorm
使色彩Map表以零为中心并延伸到数据极值。