我有150个值的条形图。
代码是:
rcParams.update({'figure.autolayout':True})
plt.figure(figsize =(14,9),dpi = 600)
reso_names = [x[0] for x in resolution3]
reso_values = [x[1] for x in resolution3]
plt.bar(range(len(reso_values[0:20])), reso_values[0:20], align='center')
plt.xticks(range(len(reso_names[0:20])), list(reso_names[0:20]), rotation='vertical')
plt.margins(0.075)
plt.xlabel('Resolution Category Tier 3')
plt.ylabel('Volume')
plt.title('Resolution Category Tier 3 Volume', {'family' : 'Arial Black',
'weight' : 'bold',
'size' : 22})
plt.savefig('Reso3.pdf', format='pdf')
plt.show()
由于我想将其分解为每个20的子图以保持可读性,我在reso_names和reso_values(两个列表)中使用[0:20]。
然而,问题在于无法保持规模,每个子图具有非常不同的尺度,并且这是在不保持一致性方面的问题。如何设置可在所有图表中维护的比例。
答案 0 :(得分:3)
您可以指定sharey=True
以使所有子图中的y比例保持相同。
import numpy as np
import matplotlib.pyplot as plt
x = np.random.randint(1, 10, 10)
y = np.random.randint(1, 100, 10)
fig, axes = plt.subplots(nrows=1, ncols=2, sharey=True)
# do simple plot here, replace barplot yourself
axes[0].plot(x)
axes[1].plot(y)
或者如果您希望单独绘制它们,可以手动配置ax.set_ylim()
。