我已经阅读了与此相关的答案并遵循了这一点:
fig = plt.figure()
fig.add_subplot(221) #top left
fig.add_subplot(222) #top right
fig.add_subplot(223) #bottom left
fig.add_subplot(224) #bottom right
plt.show()
哪个好,现在我有一个有四个空子图的图。
我无法弄清楚如何设置#top left
子图以显示我的情节x
,其中x是我已经生成的matplotlib.axes.AxesSubplot
。
我的代码总共是:
plt1 = plot.scatter(foo,bar)
plt2 = plot.line(bar, baz)
plt3 = plot.scatter(you, get)
plt4 = plot.line(the, picture)
fig = plt.figure()
fig.add_subplot(221) #top left
fig.add_subplot(222) #top right
fig.add_subplot(223) #bottom left
fig.add_subplot(224) #bottom right
# Here is where I got lost
# I want figure subplot 221 to show plt1 etc...
答案 0 :(得分:4)
您需要跟踪add_subplot
返回的Axes对象。
fig = plt.figure()
ax1 = fig.add_subplot(221) #top left
ax2 = fig.add_subplot(222) #top right
ax3 = fig.add_subplot(223) #bottom left
ax4 = fig.add_subplot(224) #bottom right
然后你可以这样做:
ax1.plot(...)
ax2.boxplot(...)
ax3.hist(...)
# etc
但我会这样做:
fig, (ax1, ax2, ax3, ax4) = plt.subplots(nrows=2, ncols=2)
然后从那里开始。
答案 1 :(得分:1)
在创建子图之前绘制是否为主体?如果不是,请尝试以下代码:
fig = plt.figure()
fig.add_subplot(221) #top left
plt1 = plt.scatter(foo,bar)
fig.add_subplot(222) #top right
plt2 = plt.line(bar, baz)
fig.add_subplot(223) #bottom left
plt3 = plt.scatter(you, get)
fig.add_subplot(224) #bottom right
plt4 = plt.line(the, picture)