matplotlib 在pcolormesh中设置颜色范围

cgh8pdjw  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(126)

matplotlibimshow()中,可选参数vmaxvmin设置颜色条的范围。
相反,在matplotlib.pyplot.pcolormesh中,它们似乎重新调整了绘制的值,并保持颜色条不变。
我想使用pcolormesh创建一系列具有固定颜色条范围的图,对应于[0.0,0.5],即最小颜色应该在0.0,最大颜色应该在0.5。此外,我希望色图的两个边缘分别在[0.0,0.5]
我正在使用:

thetas=[-4.86946861 -4.55530935 -4.24115008 -3.92699082 -3.61283155 -3.29867229 -2.98451302 -2.67035376 -2.35619449 -2.04203522 -1.72787596 -1.41371669 -1.09955743 -0.78539816 -0.4712389  -0.15707963  0.15707963  0.4712389 0.78539816  1.09955743  1.41371669]
radii=[[ 0.],[10.]]
values=[[0.00049802 0.0008128  0.00177386 0.00426617 0.01010776 0.02224737 0.04396539 0.07626507 0.11427899 0.14629945 0.15897023 0.14629945 0.11427899 0.07626507 0.04396539 0.02224737 0.01010776 0.00426617 0.00177386 0.0008128 ]]
fig, ax = plt.subplots(1, 1, subplot_kw={'polar':True})
ax.pcolormesh(thetas, radii, values,vmin=0.0,vmax=0.5,cmap='cool')

但图像的最暗颜色不是洋红色,而是青色和洋红色之间的中间值。

erhoui1w

erhoui1w1#

我想我明白了:

# plot data on a ring
vmin,vmax = 0.0,0.5
norm = mpl.colors.Normalize(vmin=vmin, vmax=vmax)
mesh = ax.pcolormesh(thetas, radii, values,norm=norm, **kwargs)

# add colorbar
cb=fig.colorbar(mesh,norm=norm)

相关问题