matplotlib 海运子图中xticks的旋转[重复]

4xrmg8kj  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(121)

此问题已在此处有答案

Rotate tick labels in subplot(3个答案)
5天前关闭。
enter image description here我正在尝试对共享的x轴xticks进行旋转,但旋转对某些子图有效,而对其他子图无效。有人能指出我的错误吗

plt.rcParams["figure.figsize"] = [15.00, 7]
plt.rcParams["figure.autolayout"] = True
plt.tight_layout()

fig,ax = plt.subplots(3,2, sharex =True)
plt.xticks(rotation=45);

#fig.subplots_adjust(hspace=0.4, wspace=0.4)

sns.lineplot(ax=ax[0,0],x='YEAR',y ='GDP',data=data1, label ='GDP')
ax[0,0].title.set_text('GDP with DATE')
plt.xticks(rotation=45)

sns.lineplot(ax=ax[0,1],x='YEAR',y='mediansoldprice',data=data1)
ax[0,1].title.set_text('mediansoldprice with DATE')
plt.xticks(rotation=45)

sns.lineplot(ax=ax[1,0],x='YEAR',y='interestrates',data=data1,label ='interestrates')
plt.xticks(rotation=45)
sns.lineplot(ax=ax[1,1],x='YEAR',y='30yr_fixed_mortigage',data=data1, 
label='30yr_fixed_mortigage')
plt.xticks(rotation=45)
sns.lineplot(ax=ax[2,0],x='YEAR',y='homeindex',data=data1,label ='homeindex')
plt.xticks(rotation=45)
plt.show()
eeq64g8w

eeq64g8w1#

如果没有测试数据和特定绘图失败的描述或图像,很难确切地说出问题所在,但问题很可能是您正在调用plt.xticks(rotation=45),而不是为每个子图设置旋转。您可以使用matplotlib方法来设置旋转,有几种方法可以做到这一点,如this answer中所述。以下是您可以为您的图修改的最小示例:

import matplotlib.pyplot as plt
import seaborn as sns

fig, ax = plt.subplots(2,2)

x = [1,2,3,4,5]
y = [i**2 for i in x]

sns.lineplot(ax=ax[0,0], x = x, y = y)
ax[0,0].tick_params("x",labelrotation=45)

sns.lineplot(ax=ax[0,1], x = x, y = y)
ax[0,1].tick_params("x",labelrotation=45)

sns.lineplot(ax=ax[1,0], x = x, y = y)
ax[1,0].tick_params("x",labelrotation=45)

sns.lineplot(ax=ax[1,1], x = x, y = y)
ax[1,1].tick_params("x",labelrotation=45)

plt.tight_layout()
plt.show()

相关问题