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

如何在Python中绘制X轴非均匀间距的图表?Plotly实践遇阻求助

Python实现X轴非均匀间距图表的方法

不管用Matplotlib还是Plotly,核心思路都是放弃默认的类别轴,改用数值轴手动指定每个刻度的位置,以此控制间距。以下是具体实现:

方法一:Matplotlib

直接自定义X轴的数值位置,再替换成对应标签:

import matplotlib.pyplot as plt

# 自定义每个刻度的位置(控制间距)和对应的标签
x_pos = [0, 3, 4, 7, 10]
x_labels = ["阶段1", "阶段2", "阶段3", "阶段4", "阶段5"]
y_data = [20, 45, 30, 60, 50]

# 绘制折线/散点
plt.plot(x_pos, y_data, marker='s', linestyle='-')
# 设置X轴刻度:位置对应自定义的x_pos,显示文本为x_labels
plt.xticks(x_pos, x_labels)
plt.xlabel("阶段")
plt.ylabel("数值")
plt.grid(axis='y', linestyle='--')
plt.show()

方法二:Plotly

同样用数值轴自定义位置,避免使用默认的类别轴(类别轴强制均匀间距):

import plotly.graph_objects as go

x_pos = [0, 3, 4, 7, 10]
x_labels = ["阶段1", "阶段2", "阶段3", "阶段4", "阶段5"]
y_data = [20, 45, 30, 60, 50]

fig = go.Figure(go.Scatter(x=x_pos, y=y_data, mode='lines+markers'))

# 配置X轴:指定刻度位置和对应文本
fig.update_layout(
    xaxis=dict(
        tickmode='array',
        tickvals=x_pos,
        ticktext=x_labels
    ),
    xaxis_title="阶段",
    yaxis_title="数值"
)

fig.show()

你之前用Plotly失败的原因是默认启用了类别轴,所有标签会被自动分配均匀的间距。改成数值轴并手动设置tickvals和ticktext,就能完全控制每个刻度的位置和间距。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 11:55:13