如何从 seaborn / matplotlib 图中删除或隐藏 x 轴标签

Posted

技术标签:

【中文标题】如何从 seaborn / matplotlib 图中删除或隐藏 x 轴标签【英文标题】:How to remove or hide x-axis labels from a seaborn / matplotlib plot 【发布时间】:2020-02-16 23:22:23 【问题描述】:

我有一个箱线图,需要删除 x 轴('user_type' 和 'member_gender')标签。给定以下格式,我该怎么做?

sb.boxplot(x="user_type", y="Seconds", data=df, color = default_color, ax = ax[0,0], sym='').set_title('User-Type (0=Non-Subscriber, 1=Subscriber)')
sb.boxplot(x="member_gender", y="Seconds", data=df, color = default_color, ax = ax[1,0], sym='').set_title('Gender (0=Male, 1=Female, 2=Other)')

【问题讨论】:

【参考方案1】: 创建箱线图后,使用.set().set(xticklabels=[]) 应该删除刻度标签。 如果你使用.set_title(),这不起作用,但你可以使用.set(title='').set(xlabel=None) 应该删除轴标签。 .tick_params(bottom=False) 将删除刻度。 同样,对于 y 轴:How to remove or hide y-axis ticklabels from a matplotlib / seaborn plot?
fig, ax = plt.subplots(2, 1)

g1 = sb.boxplot(x="user_type", y="Seconds", data=df, color = default_color, ax = ax[0], sym='')
g1.set(xticklabels=[])
g1.set(title='User-Type (0=Non-Subscriber, 1=Subscriber)')
g1.set(xlabel=None)

g2 = sb.boxplot(x="member_gender", y="Seconds", data=df, color = default_color, ax = ax[1], sym='')
g2.set(xticklabels=[])
g2.set(title='Gender (0=Male, 1=Female, 2=Other)')
g2.set(xlabel=None)

示例

使用 xticks 和 xlabel

import seaborn as sns
import matplotlib.pyplot as plt

# load data
exercise = sns.load_dataset('exercise')
pen = sns.load_dataset('penguins')

# create figures
fig, ax = plt.subplots(2, 1, figsize=(8, 8))

# plot data
g1 = sns.boxplot(x='time', y='pulse', hue='kind', data=exercise, ax=ax[0])

g2 = sns.boxplot(x='species', y='body_mass_g', hue='sex', data=pen, ax=ax[1])

plt.show()

没有 xticks 和 xlabel

fig, ax = plt.subplots(2, 1, figsize=(8, 8))

g1 = sns.boxplot(x='time', y='pulse', hue='kind', data=exercise, ax=ax[0])

g1.set(xticklabels=[])  # remove the tick labels
g1.set(title='Exercise: Pulse by Time for Exercise Type')  # add a title
g1.set(xlabel=None)  # remove the axis label

g2 = sns.boxplot(x='species', y='body_mass_g', hue='sex', data=pen, ax=ax[1])

g2.set(xticklabels=[])  
g2.set(title='Penguins: Body Mass by Species for Gender')
g2.set(xlabel=None)
g2.tick_params(bottom=False)  # remove the ticks

plt.show()

【讨论】:

以上是关于如何从 seaborn / matplotlib 图中删除或隐藏 x 轴标签的主要内容,如果未能解决你的问题,请参考以下文章

如何在不更改 matplotlib 默认值的情况下使用 seaborn?

可视化在 matplotlib/seaborn 中有意义的数值与分类数据

如何在 seaborn / matplotlib 中绘制和注释分组条形

如何使用 Matplotlib 或 Seaborn 根据不同的组指定图例

Matplotlib学习---用seaborn画矩阵图(pair plot)

如何在 matplotlib 或 seaborn 中创建带有系列的堆叠条形图? [复制]