我被使用'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')现在当我运行这段代码时,我得到了一个很好的,但很小的图形:

如何更改此图表的大小?在代码中,我调用第二行('plt.figure')的位置似乎对输出有影响,在某些情况下,会在具有不同标签的新图上方绘制一个空框。(我没有包括这方面的快照,因为我使用的是Juypter notebook,并且这两个图形只能通过向下滚动输出窗口来查看。
发布于 2017-07-19 02:11:45
尝试如下所示:
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关键字。)
https://stackoverflow.com/questions/45173817
复制相似问题