python - matplotlib.pyplot.pcolormesh:设置颜色范围
问题描述
在matplotlib
'simshow()
中,可选参数vmax
并vmin
设置颜色栏的范围。
相反,在 中matplotlib.pyplot.pcolormesh
,它们似乎重新调整了绘制的值并使颜色条保持不变。
我想使用具有固定颜色条范围的 pcolormesh 创建一系列图,这对应于说[0.0,0.5]
,即最小颜色应该是 at 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')
但是图像中最暗的颜色不是洋红色,而是青色和洋红色之间的中间值。
解决方案
我想我明白了:
# 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)
推荐阅读
- python-3.x - ValueError:缓冲区 dtype 不匹配,预期为“Python 对象”但得到“双倍”
- opencv - 给定表格结构的坐标,使用 Pytesseract 将文本提取到表格数组中
- c# - 无法使用 RestSharp 反序列化 XML 中的多个列表
- snakemake - 访问 Snakefile 中的命令行 --jobs 参数
- linux - 无法使用 spark-shell 启动 spark
- jmeter - JMeter-使用 ${} 或 vars.get() 获取变量值有什么区别
- python-behave - 如何在 Python 中的场景行为后清理数据库
- c# - 选择自动完成文本时调用函数
- vba - 尝试用条件替换 1 个值会替换整个列
- javascript - 当窗口调整大小时另一个元素的高度发生变化时,如何动态更新元素的 outerHeight?