在 Plotly Scatter plot 中,如何用一条线连接两组点?

Kan*_*bot 2 python plotly

我有以下代码

import plotly.graph_objs as go
layout1= go.Layout(title=go.layout.Title(text="A graph",x=0.5),
        xaxis={'title':'x[m]'},
        yaxis={'title':'y[m]','range':[-10,10]})

point_plot=[
            go.Scatter(x=[3,4],y=[1,2],name="V0"),
            go.Scatter(x=[1,2],y=[1,1],name="V0"),
            go.Scatter(x=[5,6],y=[2,3],name="GT")
    ]
      
      
      
go.Figure(data=point_plot, layout=layout1).show()
Run Code Online (Sandbox Code Playgroud)

产生以下情节

在此处输入图片说明

然而,这并不是我想要的。我想要的是,标有“V0”的两组必须颜色相同,并且图例中只有一个标记。(实际上,我将绘制多于两组的图,例如由一条线连接的 20 组对,它们都必须是相同的颜色并且在图例中只有一个标记)

rpa*_*nai 6

在这里,您应该使用相同legendgroup的第一个跟踪并手动设置相同的颜色。要隐藏第二个图例,参数是showlegend=False

import plotly.graph_objs as go

line_color=dict(color="blue")

layout1= go.Layout(title=go.layout.Title(text="A graph",x=0.5),
        xaxis={'title':'x[m]'},
        yaxis={'title':'y[m]','range':[-10,10]})

point_plot=[
  go.Scatter(x=[3,4],
             y=[1,2],
             name="V0",
             legendgroup="V0",
             line=line_color),
  go.Scatter(x=[1,2],
             y=[1,1],
             name="V0",
             legendgroup="V0",
             line=line_color,
             showlegend=False),
  go.Scatter(x=[5,6],
             y=[2,3],
             name="GT")]
      
      
go.Figure(data=point_plot, layout=layout1).show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


小智 3

您可以将两个V0线段组合在一个散点图中,并添加一个额外的点np.nan来分割两个线段值,如下所示:

import plotly.graph_objs as go
import numpy as np
layout1= go.Layout(title=go.layout.Title(text="A graph",x=0.5),
        xaxis={'title':'x[m]'},
        yaxis={'title':'y[m]','range':[-10,10]})

point_plot=[
            go.Scatter(x=[1,2,3,3,4],y=[1,1,np.nan, 1,2],name="V0"),
            go.Scatter(x=[5,6],y=[2,3],name="GT")
    ]
      
      
      
go.Figure(data=point_plot, layout=layout1).show()
Run Code Online (Sandbox Code Playgroud)