3个子图(2个图形和1个颜色条)

时间:2015-09-30 17:49:22

标签: python matplotlib colorbar

我想绘制一个由3个子图组成的图:其中2个是普通图,1个是彩色条。

以下是图片: enter image description here enter image description here

所以基本上我想把图像放在一起(水平)。

以下是我编写的用于生成first figure的代码:

plt.scatter(x, y, s = 40, c=z)
plt.colorbar()

这里是second figure的代码:

fig, axes = plt.subplots(1, 2, sharey = True)

axes[0].plot(z, y, 'ok')
axes[1].plot(x, y, 'ok')

为了将图形水平放置在彼此旁边,我尝试执行以下操作:(但我收到错误)

fig, axes = plt.subplots(1, 3, sharey = True)
axes[0].plot(z, y, 'ok')
axes[1].plot(x, y, 'ok')
axes[2].scatter(x, y, s = 40, c = z)
fig.colorbar()

有人可以告诉我为什么我会收到错误以及如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

根据http://matplotlib.org/api/figure_api.html#matplotlib.figure.Figure.colorbar,您必须将必要的参数mappable传递给colorbar的{​​{1}}方法。

Figure

上面的代码工作正常。

至于第一个例子,import matplotlib.pyplot as plt x = [1,2,3,4] y = [1,2,1,3] z = [10, 20, 30, 40] fig, axes = plt.subplots(1, 3, sharey = True) axes[0].plot(z, y, 'ok') axes[1].plot(x, y, 'ok') a2 = axes[2].scatter(x, y, s = 40, c=z) fig.colorbar(a2) plt.show() 只是最新plt实例的明智捷径。至于你只创作了1个情节和1个艺术家,一切都很好。