能否在seaborn的.set()方法中设置xticklabels的rotation参数?
解决方案:在Seaborn链式调用中用
.set()设置X轴刻度旋转 你不需要在xticklabels参数里嵌套旋转设置,matplotlib的Axes.set()方法本身支持xticklabel_rotation参数,直接传入旋转角度即可满足你的需求,而且完全适配链式调用的写法。
修改后的代码如下:
fig, ax = plt.subplots() (alibaba.melt(id_vars=['Date', 'nom'], value_vars=['Open', 'Close'], var_name='Cours', value_name='Valeur') .sort_values("Date") .reset_index(drop=True) .query(" Date > '2020-01' & Date < '2020-03' ") .pipe(sns.lineplot, x='Date', y='Valeur', style="Cours", hue="Cours", ax=ax) .set(xticklabel_rotation=90) # 直接添加参数设置旋转角度 ) sns.despine()
补充说明
- 你之前尝试的
.set(xticklabels=(ax.get_xticklabels(), rotation=45))报错,是因为xticklabels参数仅接受刻度标签的文本内容或TickLabel对象集合,不支持传入rotation这类配置参数。 - 如果需要自定义刻度标签文本同时设置旋转,可以这样写:
.set(xticklabels=['自定义标签1', '自定义标签2'], xticklabel_rotation=90)
- 链式调用中并非不能连续用
.set().set_xticklabels(),只是你的场景完全没必要——用xticklabel_rotation参数一步到位更简洁。
内容的提问来源于stack exchange,提问作者Hedredo
相关产品推荐
相关产品推荐

