【发布时间】:2014-03-11 22:56:49
【问题描述】:
我正在使用 pandas 和 matplotlib 绘制涉及 5 个会话的实验的数据。我希望每个会话的数据显示在单独的面板中;我正在尝试使用子图来执行此操作。
使用下面的代码,我几乎得到了我想要的东西(参见此处的示例图:http://imgur.com/99nK2TR)。问题是不同的会话有不同的试验次数,并且当我绘制时,不同面板的比例会发生变化。我希望所有图中的比例都相同,而要调整子图边界框的大小。具体来说,试验应在所有面板上等距分布,因此面板 S1 和 S2b(每个包含 12 个试验)将比面板 S2a、S3a 和 S3b(每个包含 3 个试验)宽。
我想我可能必须使用方面和/或可调整和/或 sharex 的某种组合,但我无法理解如何...
为我是新来的伪劣编码道歉=)
fig,([ax1,ax2,ax3,ax4,ax5]) = plt.subplots(1, 5, sharey=True)
dfsubset1.plot(xticks=range(1,13,1), xlim=[0,13], ylim=[0,35], ax=ax1, title='S1', figsize=(12, 6), style='o-', legend=False)
dfsubset2.plot(xticks=range(1,4,1), xlim=[0,4], ylim=[0,35], ax=ax2, title='S2a', figsize=(12, 6), style='o-', legend=False)
dfsubset3.plot(xticks=range(1,13,1), xlim=[0,13], ylim=[0,35], ax=ax3, title='S2b', figsize=(12, 6), style='o-', legend=False)
dfsubset4.plot(xticks=range(1,4,1), xlim=[0,4], ylim=[0,35], ax=ax4, title='S3a', figsize=(12, 6), style='o-', legend=False)
dfsubset5.plot(xticks=range(1,4,1), xlim=[0,4], ylim=[0,35], ax=ax5, title='S3b', figsize=(12, 6), style='o-', legend=False)
【问题讨论】:
标签: python matplotlib plot pandas