You need to enable JavaScript to run this app. Plotly使用add_trace绘制多trace时如何设置x轴偏移避免标记重叠?
优惠活动
大模型
产品
解决方案
定价
更多

Plotly使用add_trace绘制多trace时如何设置x轴偏移避免标记重叠?

分类序列水平偏移实现方案

核心逻辑:Plotly会自动将字符串类型的分类X轴映射为从0开始的连续数值索引,我们可以手动基于这些数值坐标给不同trace叠加微小水平偏移,再手动设置X轴刻度对齐原始分类位置,即可实现标记不重叠的效果,不需要依赖内置偏移参数。

修改后可运行代码

import plotly.graph_objects as go
fig2 = go.Figure()

# 原始分类标签
x_labels = ['10 days', '20 days', '30 days']
# 分类对应的内部数值坐标
x_base = list(range(len(x_labels)))
# 偏移量,可根据标记大小调整
offset = 0.15

y_data1 = [0.4, 0.7, 0.9]
y_err_data1 = [0.025, 0.03, 0.05]
y_data2 = [0.6, 0.65, 0.7]
y_err_data2 = [0.05, 0.03, 0.01]

# 第一个trace向左偏移
fig2.add_trace(go.Scatter(
    x=[i - offset for i in x_base],
    y=y_data1,
    error_y=dict(type='data', symmetric=True, array=y_err_data1, visible=True),
    mode='markers'
))

# 第二个trace向右偏移
fig2.add_trace(go.Scatter(
    x=[i + offset for i in x_base],
    y=y_data2,
    error_y=dict(type='data', symmetric=True, array=y_err_data2, visible=True),
    mode='markers'
))

# 手动对齐X轴刻度与原始分类
fig2.update_xaxes(
    tickvals=x_base,
    ticktext=x_labels,
    # 可选:调整X轴边距,避免标记贴边
    range=[-0.5, len(x_labels)-0.5]
)

fig2.show()

注意事项

  • 偏移量offset可灵活调整,两个序列的偏移总距离不要超过1,避免相邻分类的标记互相错位
  • 若有更多数据序列,可按等差逻辑依次分配偏移值(比如3个序列可使用-offset、0、+offset的偏移规则),保证同分类下的标记均匀分布
  • 误差棒会跟随X值同步偏移,不需要额外配置参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 22:27:08