Matplotlib图形放置

时间:2012-09-08 00:17:33

标签: python matplotlib

我需要一些格式化方面的帮助。如何更改第二个和第三个图形之间的距离

   from matplotlib.font_manager import FontProperties
   import matplotlib.pyplot as plt


   fig  = plt.figure(1)
   graph1 = fig.add_subplot(3,1,1)
   graph2 = fig.add_subplot(3,1,2)
   norm =  fig.add_subplot(3,1,3)

   graph1.set_title(TITLE + '\nscaling factor: ' +str(round(rescale,3)))
   norm.set_title('Circle and Oval Height Difference')
   norm.set_xlabel(XLABEL +'(Degrees)')
   norm.legend(bbox_to_anchor=(1.13,1), prop={'size':8})
   plt.ylabel('Heights (nm)')


   graph1.legend(bbox_to_anchor=(1.13,1),prop={'size':8})
   graph2.legend(bbox_to_anchor=(1.13,1),prop={'size':8})
   fontP = FontProperties()
   fontP.set_size('small')

enter image description here

2 个答案:

答案 0 :(得分:4)

快速回答是fig.subplots_adjust,将hspace设置为更大的值。不幸的是,这也会在前两个图表之间插入一些空格,但这可能会很好,这取决于你想要什么。正如Joe所说,如果它们是相同的,我经常删除x轴。

如果您希望间距不均匀,即2和3之间的间距大于1和2之间的距离,则需要使用fig.add_axes在特定位置显式实例化轴。

答案 1 :(得分:2)

使用

plt.subplots_adjust(hspace=desiredspace)

我很确定,matplotlib的方式,可能有更多的方法可以做到这一点,但它解决了我的问题,甚至不得不手工弄清楚最好的价值。

希望这有帮助!