You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matplotlib下Pandas绘图仅保留箱线图x轴标签隐藏其他标签的问题

问题原因

你调用df_median.plot时传入了ax=axes[0]参数,此时方法返回的a和axes[0]是完全相同的坐标轴对象,你对a.xaxis执行隐藏操作,等于直接关闭了整个坐标轴的x轴显示,自然所有标签都被移除。你需要实现的不是隐藏整个x轴,而是避免第二个绘图操作覆盖箱线图已经生成的x轴配置。

解决方法

两种实现方案可选:

方案1:绘图时直接禁用折线图的x轴生成逻辑

绘制折线图时通过参数指定不生成x轴刻度和标签,不会影响已有的箱线图x轴配置:

df.boxplot(column=['vals'], by='date', ax=axes[0], rot=45, showfliers=False, showmeans=True, whis=0)
axes[0].axhline(y=df.vals.mean(), color='r', linestyle='-')
# 新增xticks和xlabel参数,禁止折线图生成x轴相关内容
df_median.plot(
    y='vals', 
    ax=axes[0], 
    label='7 day',
    xticks=[],
    xlabel=''
)

方案2:备份恢复箱线图的x轴配置(兼容性更强)

如果方案1因为pandas版本差异不生效,可以先保存箱线图的x轴配置,绘制完折线图后再恢复:

# 绘制箱线图
df.boxplot(column=['vals'], by='date', ax=axes[0], rot=45, showfliers=False, showmeans=True, whis=0)
axes[0].axhline(y=df.vals.mean(), color='r', linestyle='-')
# 备份箱线图x轴配置
x_lim = axes[0].get_xlim()
x_ticks = axes[0].get_xticks()
x_ticklabels = axes[0].get_xticklabels()

# 绘制折线图
df_median.plot(y='vals', ax=axes[0], label='7 day')

# 恢复箱线图的x轴配置
axes[0].set_xlim(x_lim)
axes[0].set_xticks(x_ticks)
axes[0].set_xticklabels(x_ticklabels, rotation=45)
axes[0].set_xlabel('')

内容的提问来源于stack exchange,提问作者A1122

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 23:36:01