在 seaborn 中使用 FacetGrid 为所有方面重复 x 轴标签

Posted

技术标签:

【中文标题】在 seaborn 中使用 FacetGrid 为所有方面重复 x 轴标签【英文标题】:Repeating x axis labels for all facets using FacetGrid in seaborn 【发布时间】:2019-02-10 10:24:10 【问题描述】:

我正在使用FacetGrid 提供的here 示例,结果如下图所示。在我的数据集中,有相当多的图,可以方便地为每个方面重复x 轴标签,而不仅仅是在底部。

对于本例,62, ..., 76 的值应针对每个 A-J 构面重复。

【问题讨论】:

【参考方案1】:

Bazingaa 的答案适用于 matplotlib 2.0.2 版。对于较新版本的 matplotlib,使用 ax.tick_params() 和设置 labelbottom=True 似乎可行:

for ax in g.axes.flatten():
    ax.tick_params(labelbottom=True)

【讨论】:

【参考方案2】:

只需在 def label(): 函数后添加以下行。虽然情节看起来没有你想要的修改那么好。

for ax in g.axes.flat:
    _ = plt.setp(ax.get_xticklabels(), visible=True)

输出

【讨论】:

什么不适合你?你能提供你遇到的错误吗?我刚刚使用了您提供的示例链接并添加了以上几行 我没有收到错误,但没有显示标签。我正在使用 seaborn 0.9.0 我也在用0.9.0matplotlib版本是2.0.2 我认为这是一个 matplotlib 问题。您的解决方案适用于 matplotlib 2.0.2,但不适用于 2.2.3 是的,我也这么认为。我将尝试使用更高版本并更新我的答案

以上是关于在 seaborn 中使用 FacetGrid 为所有方面重复 x 轴标签的主要内容,如果未能解决你的问题,请参考以下文章

在 seaborn facetgrid 的各个方面设置轴限制

seaborn使用FacetGrid函数可视化山脊图(Ridgeline Plot with Seaborn)

如何使用 Seaborn 创建 FacetGrid 堆叠条形图?

如何使用 seaborn FacetGrid 更改字体大小?

在 Seaborn/其他库中聚合的 FacetGrid 图

使用 Seaborn FacetGrid 从数据框中绘制误差线