x 轴上的偏移绘图轨迹

Hem*_*Das 5 python plot trace scatter plotly

我正在尝试使用 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.03, 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,
                             error_y = dict(type='data', symmetric=True,  array=y_err_data2, visible=True),
                             mode = 'markers'))

fig2.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

jay*_*sea 1

您可以通过一些修改来完成此操作:

  • 使用x_data=[10,20,30]以便我们可以轻松地添加/减去它。然后对于 x 输入,go.Scatter使用类似的方法x_data=[i-.1 for i in x_data]来创建偏移量。选择您想要的偏移量,我在这里使用 +/- 0.1。
  • 或者,您可以使用 numpy array x_data=np.array([10,20,30])。那么 x 输入go.Scatter就更容易了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,20,30]
x_data = np.array([10,20,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.03, 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,
                             error_y = dict(type='data', symmetric=True,  array=y_err_data2, visible=True),
                             mode = 'markers'))

fig2.update_xaxes(ticksuffix=" days", tickvals=x_data)
fig2.show()
Run Code Online (Sandbox Code Playgroud)

带刻度值