【发布时间】:2021-07-04 06:01:34
【问题描述】:
我正在尝试学习一些 python,并尝试绘制一些数据。当然,我能够做到,但是为了实现我想要的外观,我添加了太多代码。而且我想有一种更简单的方法。
我想做的是
- 为所有子图设置相同的 x 轴限制
- 删除绘图框,只保留 x 轴
为了实现这一点,我必须写下所有这些
fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(10,10))
axes[0, 0].plot(data1['Hz'], data1['int_n'])
axes[0, 1].plot(data2['Hz'], data2['int_n'])
axes[1, 0].plot(data3['Hz'], data3['int_n'])
axes[1, 1].plot(data4['Hz'], data4['int_n'])
axes[0, 0].set_xlim(100, 20)
axes[0, 1].set_xlim(100, 20)
axes[1, 0].set_xlim(100, 20)
axes[1, 1].set_xlim(100, 20)
axes[0, 0].set_title('Sample 1')
axes[0, 1].set_title('Sample 2')
axes[1, 0].set_xlabel('Hz')
axes[1, 1].set_xlabel('Hz')
axes[0, 0].set_ylabel('Experiment 1')
axes[1, 0].set_ylabel('Experiment 2')
axes[0, 0].get_yaxis().set_ticks([])
axes[0, 1].get_yaxis().set_ticks([])
axes[1, 0].get_yaxis().set_ticks([])
axes[1, 1].get_yaxis().set_ticks([])
axes[0, 0].spines['right'].set_visible(False)
axes[0, 0].spines['top'].set_visible(False)
axes[0, 0].spines['left'].set_visible(False)
axes[0, 1].spines['right'].set_visible(False)
axes[0, 1].spines['top'].set_visible(False)
axes[0, 1].spines['left'].set_visible(False)
axes[1, 0].spines['right'].set_visible(False)
axes[1, 0].spines['top'].set_visible(False)
axes[1, 0].spines['left'].set_visible(False)
axes[1, 1].spines['right'].set_visible(False)
axes[1, 1].spines['top'].set_visible(False)
axes[1, 1].spines['left'].set_visible(False)
fig.tight_layout()
我想有一个简单的方法可以用更少的文字来做,但我不知道该怎么做
【问题讨论】:
-
你可以使用循环让它更短一点,但不会更短,你的代码很好。
-
对循环不太满意,但我会研究一下。感谢您添加由于低代表我无法做到的图像。
标签: python matplotlib subplot