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

如何在Matplotlib中隐藏柱状图的X轴城市文本标签?

隐藏柱状图X轴指定城市标签的方法

没问题,我来帮你解决隐藏X轴不需要的城市标签的问题,分两种常见场景给你具体方案:

1. 隐藏所有X轴城市标签

如果想把所有城市文本都隐藏掉,直接把你代码里的plt.gca().set_xticklabels(df['city'])替换成下面这行就行:

plt.gca().set_xticklabels([])

或者用Axes对象直接操作(更规范):

ax.set_xticklabels([])

如果连X轴的刻度线也想一起隐藏,可以再加一行:

plt.gca().set_xticks([])

2. 隐藏特定的部分城市标签

如果你只想隐藏某几个不需要的城市(比如例子里的k、j),可以通过生成自定义标签列表来实现。把原来设置X轴标签的代码替换成下面的逻辑:

# 获取排序后的所有城市名称
city_labels = df['city'].tolist()
# 定义你要隐藏的城市列表
hidden_cities = ['k', 'j']  # 这里替换成你不需要的城市
# 生成新标签:需要保留的显示原名称,要隐藏的设为空字符串
new_xtick_labels = [label if label not in hidden_cities else '' for label in city_labels]
# 设置新的X轴标签
plt.gca().set_xticklabels(new_xtick_labels)

按索引隐藏的变种

如果你想按位置(比如隐藏第0个和第10个标签),可以用枚举来判断:

new_xtick_labels = [label if idx not in [0, 10] else '' for idx, label in enumerate(city_labels)]
plt.gca().set_xticklabels(new_xtick_labels)

修改后的完整代码示例

这里给你整合了隐藏特定城市(比如k和j)的完整代码,你可以直接参考:

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (10, 7)
colors = ['b', 'g', 'r', 'c', 'm', 'y', 'g']
df = df.sort_values(by=['actual'], ascending=False)
ax = df.plot(x="city", y=["actual", "pred"], kind="bar", color = colors, alpha=0.8)
plt.legend(["actual", "pred"], fontsize=15)

# --- 替换这里的标签设置逻辑 ---
city_labels = df['city'].tolist()
hidden_cities = ['k', 'j']
new_xtick_labels = [label if label not in hidden_cities else '' for label in city_labels]
plt.gca().set_xticklabels(new_xtick_labels)
# --- 替换结束 ---

plt.suptitle("pred vs actual", fontsize=18)
for p in ax.patches:
    ax.annotate(np.round(p.get_height(),decimals=2), (p.get_x()+p.get_width()/2., p.get_height()), ha='center', va='center', xytext=(0, 10), textcoords='offset points')
plt.tight_layout()
plt.show()

这样就能精准隐藏你不需要的X轴城市文本标签啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:06:46