我有一个时间序列数据,并排绘制了两个图表。我需要旋转x标签,因为可能要显示很多年。当我添加plt.xticks(rotation = 45)
时,它仅更改第二个图的旋转,而不更改第一个图的旋转。有什么建议么?
这是我的代码:
values = range(0,120)
dates = pd.date_range(start='2000', end='2010', freq='M')
df = pd.DataFrame({'Date': dates,
'value':values})
def box_plot(df, value):
# Prepare data
data_date = df.reset_index()
data_date['year'] = [d.year for d in data_date.Date]
data_date['month'] = [d.strftime('%b') for d in data_date.Date]
years = data_date['year'].unique()
# Draw Plot
fig, axes = plt.subplots(1, 2, figsize=(20,7), dpi= 80)
sns.boxplot(x='year', y=value, data=data_date, ax=axes[0])
sns.boxplot(x='month', y=value, data=data_date)
# Set Title
axes[0].set_title('Year-wise Box Plot '+value+'\n(The Trend)', fontsize=18);
axes[1].set_title('Month-wise Box Plot '+value+'\n(The Seasonality)', fontsize=18)
plt.show()
问题来源:stackoverflow
您应该可以使用matplotlib.axes.Axes.tick_params()
方法而不是plt.xticks
。后者仅适用于“当前”(在这种情况下为最新生成的)轴实例,而前者可以在任何轴实例上使用。例如:
axes[0].tick_params(axis='x', labelrotation=45)
axes[1].tick_params(axis='x', labelrotation=45)
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。