Matplotlib添加轮廓图颜色条

时间:2014-08-05 23:12:41

标签: python matplotlib plot contour colorbar

请告诉我如何在下图中包含等高线图颜色条:

from matplotlib import pyplot as plt
from astroML.plotting import scatter_contour
from astroML.datasets import fetch_sdss_S82standards

data = fetch_sdss_S82standards()

g = data['mmu_g']
r = data['mmu_r']
i = data['mmu_i']


fig, ax = plt.subplots(figsize=(5, 3.75))
scatter_contour(g - r, r - i, threshold=200, log_counts=True, ax=ax,
                histogram2d_args=dict(bins=40),
                plot_args=dict(marker=',', linestyle='none', color='black'),
                contour_args=dict(cmap=plt.cm.bone))

ax.set_xlabel(r'${\rm g - r}$')
ax.set_ylabel(r'${\rm r - i}$')

ax.set_xlim(-0.6, 2.5)
ax.set_ylim(-0.6, 2.5)

plt.show()

我试过cbar = plt.colorbar() 我收到错误:没有发现mappable用于创建colorbar。首先定义一个可映射的图像(使用imshow)或轮廓集(使用contourf)。

1 个答案:

答案 0 :(得分:2)

如果您对源有写入权限,则可以更改scatter_contour中的行以返回所需的轮廓集:

CS = ax.contourf(H.T, levels, extent=extent, **contour_args)

...

return CS

然后你可以通过调用

来制作你的颜色栏
CS = scatter_contour(...)
colorbar(CS)

如果你不能,那么你必须尝试追踪轴中所包含的集合的引用 - 而不是立即确定如何做到这一点。