我正在用matplotlib在python中渲染一些图形,并将它们包含在LaTeX论文中(使用LaTeX的漂亮表格对齐,而不是摆弄matplotlib的ImageGrid
等)。我想使用savefig
创建并保存独立的颜色条,而不需要使用imshow
。
(the vlim, vmax
参数,以及可以显式提供cmap
)
我能找到的唯一方法是相当复杂的,并且(据我所知)在画布上绘制一个硬编码的矩形:http://matplotlib.org/examples/api/colorbar_only.html
有没有一种优雅的方法可以用matplotlib创建一个独立的colorbar?
6条答案
按热度按时间xoshrz7s1#
你可以创建一些虚拟图像,然后隐藏它的斧头。在自定义轴中绘制颜色条。
结果:
m528fe3b2#
使用与HYRY的答案相同的想法,如果您想要一个“独立”的颜色条,即它独立于图形上的项目(不直接与它们的颜色有关),您可以执行以下操作:
91zkwejq3#
所以,基于this answer here,如果你和我一样,想避免这个丑陋的伪plt.imshow(),你可以用两行代码来完成:
nhjlsmyf4#
http://matplotlib.org/examples/api/colorbar_only.html的引用为我解决了这个问题。那个例子有点冗长,所以这里有一个简单的方法来制作一个独立的颜色条(为了子孙后代)...
当然,您可以指定Colorbar的许多其他方面
wqsoz72f5#
该方法也可用于绘制与ax的内容无关的颜色条。设置
fraction = .05
即可。编码
pkmbmrz76#
为了补充@blaylockbk的答案(这是一个很好的解决方案,甚至是添加到已经创建的图),对我来说,
cmap
参数不会接受字符串来表示颜色Map名称,但是cmap = plt.cm.viridis
工作,如果有人遇到和我一样的问题。