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

如何在Python的Matplotlib断裂条形图中移除重复Y值10.00

解决Matplotlib断裂条形图重复刻度问题

针对断裂条形图中重复显示的10.00刻度,可通过以下几种方法处理:

方法1:手动筛选并设置坐标轴刻度

假设你有上下两个子图轴ax1(上方)和ax2(下方),可以合并刻度后去重,再分别设置:

# 获取两个轴的现有刻度
ticks_ax1 = ax1.get_xticks()
ticks_ax2 = ax2.get_xticks()

# 合并并去重,得到唯一刻度列表
unique_ticks = sorted(list(set(ticks_ax1) | set(ticks_ax2)))

# 让其中一个轴保留所有刻度,另一个轴移除重复的10.0
ax1.set_xticks(unique_ticks)
ax2.set_xticks([t for t in unique_ticks if t != 10.0])

方法2:自定义刻度标签隐藏重复项

如果不想改变刻度位置,仅隐藏重复的10.00标签:

# 以隐藏上方轴的10.00标签为例
ax1_labels = [txt if txt != '10.00' else '' for txt in [label.get_text() for label in ax1.get_xticklabels()]]
ax1.set_xticklabels(ax1_labels)

# 若想让下方轴隐藏,只需替换为ax2即可

方法3:创建子图时共享坐标轴

如果是通过子图构建的断裂图,创建子图时设置sharex=True,让两个子图共享x轴刻度,自然只会显示一次:

import matplotlib.pyplot as plt

# 创建共享x轴的上下子图
fig, (ax1, ax2) = plt.subplots(2, 1, sharex=True, figsize=(8, 6))

# 在ax1绘制上方断裂条形,ax2绘制下方部分
ax1.broken_barh([(0, 5), (15, 10)], (1, 0.5))
ax2.broken_barh([(5, 10)], (1, 0.5))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:40:37