在matplotlib patchcollection中设置颜色范围
我正在 matplotlib 中绘制 PatchCollection
从文件中读取的坐标和色块颜色值。
问题是 matplotlib 似乎会自动将颜色范围缩放到数据值的最小/最大。如何手动设置颜色范围?例如,如果我的数据范围是 10-30,但我想将其缩放到 5-50 的颜色范围(例如与另一个图进行比较),我该怎么做?
我的绘图命令看起来与 api 示例代码非常相似: patch_collection.py
colors = 100 * pylab.rand(len(patches))
p = PatchCollection(patches, cmap=matplotlib.cm.jet, alpha=0.4)
p.set_array(pylab.array(colors))
ax.add_collection(p)
pylab.colorbar(p)
pylab.show()
I am plotting a PatchCollection
in matplotlib with coords and patch color values read in from a file.
The problem is that matplotlib seems to automatically scale the color range to the min/max of the data values. How can I manually set the color range? E.g. if my data range is 10-30, but I want to scale this to a color range of 5-50 (e.g. to compare to another plot), how can I do this?
My plotting commands look much the same as in the api example code: patch_collection.py
colors = 100 * pylab.rand(len(patches))
p = PatchCollection(patches, cmap=matplotlib.cm.jet, alpha=0.4)
p.set_array(pylab.array(colors))
ax.add_collection(p)
pylab.colorbar(p)
pylab.show()
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在您的示例中,使用
p.set_clim([5, 50])
设置颜色缩放最小值和最大值。 matplotlib 中具有颜色图的任何内容都具有get_clim
和set_clim
方法。作为一个完整的示例:
现在,如果我们只添加
p.set_clim([5, 50 ])
(其中p
是补丁集合)在我们调用fig.show(...)
之前的某个地方,我们得到:Use
p.set_clim([5, 50])
to set the color scaling minimums and maximums in the case of your example. Anything in matplotlib that has a colormap has theget_clim
andset_clim
methods.As a full example:
Now, if we just add
p.set_clim([5, 50])
(wherep
is the patch collection) somewhere before we callfig.show(...)
, we get this: