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

Matplotlib中分类X轴标签重复问题:原因及解决问询

解决X轴标签重复问题

你的X轴标签重复(每个分类标签如Cats、Dogs、Pigs在X轴上显示两次),根源在于使用brokenaxes时两次绘图调用的X轴处理逻辑冲突:

  • bax.plot(compositions, a_vals)用字符串列表作为X轴输入,自动生成了带分类标签的刻度
  • 循环里的bax.errorbar(i, a_vals[i])用数值索引作为X轴,再次触发了刻度生成机制,导致标签被重复渲染

修改后的代码

import matplotlib.pyplot as plt
from brokenaxes import brokenaxes

a = { # DATA -- 'CATEGORY': (VALUE, ERROR) 
      'Cats': (1, 0.105), 
      'Dogs': (2, 0.023), 
      'Pigs': (2.6, 0.134)
     }

compositions = list(a.keys())
a_vals = [i[0] for i in a.values()]
a_errors = [i[1] for i in a.values()]

fig = plt.figure(figsize=(8, 6))   
bax = brokenaxes(ylims=((0,1.5), (1.7, 3)), hspace = 0.05) 
# 统一用数值索引绘图,避免自动生成重复标签
bax.plot(range(len(compositions)), a_vals, marker = 'o')

for i in range(len(a_errors)):
  bax.errorbar(i, a_vals[i], yerr = a_errors[i], capsize = 5, fmt = 'red')

# 手动设置X轴刻度与标签
bax.set_xticks(range(len(compositions)))
bax.set_xticklabels(compositions)

说明

  • 先统一用数值索引作为X轴坐标绘图,避免两次绘图分别生成刻度
  • 最后通过set_xticks和set_xticklabels一次性设置标签,彻底解决重复问题
  • 你之前尝试的方法无效,是因为没有先统一X轴的绘图逻辑,手动设置的标签被重复叠加的刻度覆盖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 06:35:26