x 轴上的偏移绘图跟踪

问题描述

我正在尝试使用 add_trace() 在同一图上绘制多个类别。理想情况下,我希望不同的轨迹有轻微的偏移,这样标记就不会重叠。我无法弄清楚如何实现它。

这是一个说明性的代码,以及我当前的结果。 add_trace() 似乎没有偏移参数。

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

x_data = ['10 days','20 days','30 days']

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.01]

fig2.add_trace(go.Scatter(x=x_data,y=y_data1,error_y = dict(type='data',symmetric=True,array=y_err_data1,visible=True),mode = 'markers'))

fig2.add_trace(go.Scatter(x=x_data,y=y_data2,array=y_err_data2,mode = 'markers'))

fig2.show()

enter image description here

解决方法

您可以通过一些修改来实现这一点:

  • 使用 x_data=[10,20,30] 以便我们可以轻松地对其进行加/减。然后对于 go.Scatter 的 x 输入使用类似 x_data=[i-.1 for i in x_data] 的东西来创建偏移量。选择您想要的偏移量,我在这里使用 +/- 0.1。
  • 或者,您可以使用 numpy 数组 x_data=np.array([10,30])。然后 go.Scatter 的 x 输入使用 x=x_data-.1
  • 更容易
  • 使用 ticksuffix=" days" 将文本恢复到 xaxis 上
  • 使用 tickvals=x_data 指定准确的刻度值。

一起:

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

#x_data = [10,30]
x_data = np.array([10,30])

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.01]

fig2.add_trace(go.Scatter(x=x_data+0.1,#x=[i+.1 for i in x_data]
                             y=y_data1,error_y = dict(type='data',symmetric=True,array=y_err_data1,visible=True),mode = 'markers'))

fig2.add_trace(go.Scatter(x=x_data-0.1,#x=[i-.1 for i in x_data]
                             y=y_data2,array=y_err_data2,mode = 'markers'))

fig2.update_xaxes(ticksuffix=" days",tickvals=x_data)
fig2.show()

with tick vals