独立颜色条(matplotlib)

新手上路,请多包涵

我正在使用 matplotlib 在 python 中渲染一些图形,并将它们包含到 LaTeX 纸中(使用 LaTex 的漂亮表格对齐而不是摆弄 matplotlib 的 ImageGrid 等)。 我想使用 --- 创建并保存一个独立的 savefig ,而不需要使用 imshow

vlim, vmax 参数,以及 cmap 可以明确提供)

我能找到的唯一方法非常复杂并且(据我所知)在画布上绘制一个硬编码的矩形:http: //matplotlib.org/examples/api/colorbar_only.html

有没有一种优雅的方法可以用 matplotlib 创建一个独立的颜色条?

原文由 user 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 443
2 个回答

您可以创建一些虚拟图像,然后隐藏它的斧头。在自定义轴中绘制颜色条。

 import pylab as pl
import numpy as np

a = np.array([[0,1]])
pl.figure(figsize=(9, 1.5))
img = pl.imshow(a, cmap="Blues")
pl.gca().set_visible(False)
cax = pl.axes([0.1, 0.2, 0.8, 0.6])
pl.colorbar(orientation="h", cax=cax)
pl.savefig("colorbar.pdf")

结果:

在此处输入图像描述

原文由 HYRY 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用与 HYRY 的回答相同的想法,如果你想要一个“独立”的颜色条,因为它独立于图形上的项目(不直接与它们的颜色相关),你可以执行如下操作:

 from matplotlib import pyplot as plt
import numpy as np

# create dummy invisible image
# (use the colormap you want to have on the colorbar)
img = plt.imshow(np.array([[0,1]]), cmap="Oranges")
img.set_visible(False)

plt.colorbar(orientation="vertical")

# add any other things you want to the figure.
plt.plot(np.random.rand(30))

原文由 Mark 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏