为什么我的子图只绘制到最后一把斧头?

Why are my subplots plotting only to the last ax?

因此在 Spyder IPython 和 Jupyter 笔记本中,以下代码无法创建子图:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
mydict = {'a': [1,2,3,4], 'b':[2,3,4,5], 'c':[3,4,5,6]}
df = pd.DataFrame(mydict)
fig, axes = plt.subplots(3,1)
axes[0] = plt.plot(df.a)
axes[1] = plt.plot(df.b)
axes[2] = plt.plot(df.c)
plt.show(fig)

它返回以下图:

当我从 matplotlib webpage

copy-c copy-vd 示例代码时也会发生这种情况

我想要的是要绘制的三个不同子图中的三列

如果您使用 plt.subplots 创建轴,则您使用的是 matplotlib 中的面向对象方法。然后你必须在轴对象上调用 plot(),所以 axes[0].plot(df.a),而不是 plt.plot

你正在做的是过程和面向对象方法之间的奇怪混合,你还覆盖了你在编写 axes[0] = plt.plot(....

时创建的轴对象
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
mydict = {'a': [1,2,3,4], 'b':[2,3,4,5], 'c':[3,4,5,6]}
df = pd.DataFrame(mydict)
fig, axes = plt.subplots(3,1)
axes[0].plot(df.a)
axes[1].plot(df.b)
axes[2].plot(df.c)
plt.show()