调整图块大小

时间:2017-07-18 17:49:12

标签: python matplotlib plot

我对使用'figsize'来改变情节的大小感到困惑。也许我不完全了解matplotlib的工作原理。下面的代码来自我之前的一个问题,即使用两个轴在一个图中绘制具有不同比例的系列。 Prin_Balances是由浮点数组成的数据帧,列名应该是自解释的并且对应于特征。

fig, ax = plt.subplots()
# plt.figure(figsize=(9,6))

plt.xticks(rotation=45)
plt.plot(Prin_Balances['UPB'], '--r', label='UPB')
plt.legend()
ax.tick_params('Bal', colors='r')


# Get second axis
ax2 = ax.twinx()
plt.plot(Prin_Balances['1 Mos'],  label='1 Mos', color = 'blue')
plt.plot(Prin_Balances['2 Mos'],  label='2 Mos', color = 'green')
plt.plot(Prin_Balances['3 Mos'],  label='3 Mos', color = 'yellow')
plt.plot(Prin_Balances['> 3 Mos'],  label='>3 Mos', color = 'purple')
plt.legend()

ax.tick_params('vals', colors='b')

现在,当我运行此代码时,我得到了一个不错的小图:

enter image description here

如何更改此图表的大小?我调用第二行('plt.figure')的代码中的点似乎对输出有影响,在某些情况下,在具有不同标签的新绘图上方绘制一个空框。 (我没有包含这一点,因为我正在使用Juypter笔记本,只能通过向下滚动输出窗口来查看这两个图。

1 个答案:

答案 0 :(得分:-1)

尝试这样的事情:

fig = plt.figure(figsize=(9,6))
ax = fig.add_subplot(121)

# ax.xticks(rotation=45)
ax.plot(Prin_Balances['UPB'], '--r', label='UPB')
ax.legend()
ax.tick_params('Bal', colors='r')


# Get second axis
ax2 = fig.add_subplot(122)
ax2.plot(Prin_Balances['1 Mos'],  label='1 Mos', color = 'blue')
ax2.plot(Prin_Balances['2 Mos'],  label='2 Mos', color = 'green')
ax2.plot(Prin_Balances['3 Mos'],  label='3 Mos', color = 'yellow')
ax2.plot(Prin_Balances['> 3 Mos'],  label='>3 Mos', color = 'purple')
ax2.legend()
ax2.tick_params('vals', colors='b')

plt.show()

ax是一个AxesSubplot,它没有xticks()方法,因此您必须找到相应的方法。 (set_xticks()可以使用,但不能使用rotation关键字。我可以告诉您。)