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

相同x值导致Matplotlib绘图y值与错误x值关联的问题如何解决

问题原因

你直接将字符串类型的Col1传入ax.plot()作为x参数时,Matplotlib会自动对分类值做去重聚合,相同字符串会被映射到同一个x坐标位置,才会导致后续设置全量刻度标签时出现错位。

解决方法

画图时用行索引作为x轴坐标值,避免重复分类被合并,再将刻度标签替换为Col1的取值即可,修改后的代码如下:

import pandas as pd
import matplotlib.pyplot as plt

dfa = pd.DataFrame(
    {
        "Col1": ["A", "A", "H"],
        "Col2": [1, 3, 5],
        "Col3": [2, 4, 6],
    }
)

x_pos = range(len(dfa))
x_labels = dfa["Col1"]
y = dfa[["Col2", "Col3"]]

fig, ax = plt.subplots()
ax.plot(x_pos, y) # 传入数值索引作为x坐标,不会合并重复值
ax.set_xticks(x_pos)
ax.set_xticklabels(x_labels)
plt.show()

说明

该方案不限制Col1的取值是否重复,每个数据点的x位置严格对应行顺序,完全满足你需要展示所有x标签的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:24:03