我想绘制一个由3个子图组成的图:其中2个是普通图,1个是彩色条。
所以基本上我想把图像放在一起(水平)。
以下是我编写的用于生成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()
有人可以告诉我为什么我会收到错误以及如何解决这个问题?
答案 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个艺术家,一切都很好。