为什么我的子图只绘制到最后一把斧头?
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()
因此在 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()