根据条件颜色绘制图例

plotly display legend based on conditional color

我有 2D 点,标记为 True/False。我想制作一个散点图,这样真点为绿色,假点为红色。另外,我想要一个图例在旁边显示{green_dot}=True,{red_dot}=False。我怎样才能添加这样的图例?

这是一个最小的例子。我必须使用go.Scatter(),其他的都可以改变。

import numpy as np
import plotly.graph_objects as go
x = np.arange(-3,3)
color = (x>=0).astype('int')
fig = go.Figure(go.Scatter(x=x, 
                           marker=dict(color=color,
                                      colorscale=[[0,'red'],[1,'green']]),                                
                                      showlegend=True))
fig.show()

可以看出,图例信息量不大。

您可以将您的数据拆分为带有 True 标记点的列表和带有 False 标记点的列表。

import numpy as np
import plotly.graph_objects as go

x = np.arange(0, 100)
y = np.random.randn(100)
color = np.random.randint(2, size=100)

fig = go.Figure()

trace1 = np.where(color==0)
trace2 = np.where(color==1)
fig.add_trace(go.Scatter(x=x[trace1],
                         y=y[trace1],
                         mode='markers',
                         name='false',
                         marker=dict(color='red')))
fig.add_trace(go.Scatter(x=x[trace2],
                         y=y[trace2],
                         mode='markers',
                         name='true',
                         marker=dict(color='green')
                         ))                         
fig.show()