猿问

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

我有以下代码


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()

产生以下情节

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



侃侃尔雅
浏览 162回答 2
2回答

料青山看我应如是

在这里你应该使用相同legendgroup的第一个痕迹并手动设置相同的颜色。要隐藏第二个图例,参数是showlegend=False。import plotly.graph_objs as goline_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()

万千封印

您可以将两个V0段组合成一个散点图,并添加一个额外的点np.nan来拆分两个段值,如下所示:import plotly.graph_objs as goimport numpy as nplayout1= 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()
随时随地看视频慕课网APP

相关分类

Python
我要回答