首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在海运中全局更改xticks标签relplot

如何在海运中全局更改xticks标签relplot
EN

Stack Overflow用户
提问于 2021-03-04 22:01:03
回答 1查看 426关注 0票数 0

我在使用relplot全局更改绘图渲染的x-tick标签时遇到了一个问题

其想法是将两个绘图的int更改为string x-tick标签。所需的标签为['a','b','c','d']

然而,如下所示,只有底部图的x标签被成功更改。

重现上图的代码如下所示。

代码语言:javascript
复制
tips = sns.load_dataset("tips")
g = sns.relplot(x="total_bill", y="tip", hue="day", col="time", data=tips, facet_kws=dict(sharex=False),col_wrap=1)
header_name=['a','b','c','d']
x_tick_interval = 15
value_tick = range ( 0, 50, x_tick_interval )
header_name_sel = [header_name[idx] for idx in  range ( 0,len(value_tick))]
# g.set_xticklabels ( fontsize=8, rotation=45, labels=header_name, step=15 )
plt.xticks ( ticks=value_tick, labels=header_name_sel, ha="right" )
plt.show ()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-05 02:45:17

您可以手动获取轴,因为seaborn基本上是matplotlib的包装器。请参考下面的示例。

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

tips = sns.load_dataset("tips")
g = sns.relplot(x="total_bill", y="tip", hue="day", col="time", data=tips, facet_kws=dict(sharex=False),col_wrap=1)
header_name=['a','b','c','d']
x_tick_interval = 15
value_tick = range ( 0, 50, x_tick_interval )
header_name_sel = [header_name[idx] for idx in  range ( 0,len(value_tick))]

for ax in g.axes.flat:
    labels = ax.get_xticklabels() # get x labels
    ax.set_xticks(ticks=value_tick) # set new labels
    ax.set_xticklabels(fontsize=8, rotation=45, labels=header_name)

plt.show ()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66476585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档