基于字符串值的标记颜色 Plotly Python
Marker Color based on String Value Plotly Python
这里的问题很简单,但我似乎无法弄明白。我有一个包含 3 个可能值的数据框列:
print(df['Site'])
0 ABC
1 EFG
2 ABC
3 ABC
4 HIJ
当我绘制时,每个站点都有相同的颜色,但我希望每个标记都有一种颜色来代表该站点。我尝试过以下 2 个选项,但没有成功:
fig.add_trace(go.Scatter(x=df['Reported Date'], y=df['Score'],
mode='markers',
marker= dict(color=list(map(SetColor, df['Site']))),
name='Points',
text="Site: " + df['Site'].map(str) + " " + "Ticket: "+ df['Ticket ID'].map(str)))
fig.add_trace(go.Scatter(x=df['Reported Date'], y=df['Score'],
mode='markers',
marker_color= df['Site'],
name='Points',
text="Site: " + df['Site'].map(str) + " " + "Ticket: "+ df['Ticket ID'].map(str)))
我知道 Plotly/Dash 想要一个整数。有解决办法吗?如何在标记中绘制网站颜色?
我将从字典映射颜色和网站开始。
d = {
'ABC':'red',
'DEF':'green',
'GHI':'black'
}
您可以在那里使用任何 HTML color name。
然后,您可以根据您的字典制作一个颜色列表。
colors = [d[k] for k in df['Site'].values]
最后可以把marker_color=colors
传给fig.add_trace()
如果使用Plotly Express,可以在px.scatter()
中传递参数color_discrete_map
。例如:
px.scatter(df, x='datetime', y='measurement',
color='target',
color_discrete_map={'value1': 'green', 'value2': 'red'})
来源:
这里的问题很简单,但我似乎无法弄明白。我有一个包含 3 个可能值的数据框列:
print(df['Site'])
0 ABC
1 EFG
2 ABC
3 ABC
4 HIJ
当我绘制时,每个站点都有相同的颜色,但我希望每个标记都有一种颜色来代表该站点。我尝试过以下 2 个选项,但没有成功:
fig.add_trace(go.Scatter(x=df['Reported Date'], y=df['Score'],
mode='markers',
marker= dict(color=list(map(SetColor, df['Site']))),
name='Points',
text="Site: " + df['Site'].map(str) + " " + "Ticket: "+ df['Ticket ID'].map(str)))
fig.add_trace(go.Scatter(x=df['Reported Date'], y=df['Score'],
mode='markers',
marker_color= df['Site'],
name='Points',
text="Site: " + df['Site'].map(str) + " " + "Ticket: "+ df['Ticket ID'].map(str)))
我知道 Plotly/Dash 想要一个整数。有解决办法吗?如何在标记中绘制网站颜色?
我将从字典映射颜色和网站开始。
d = {
'ABC':'red',
'DEF':'green',
'GHI':'black'
}
您可以在那里使用任何 HTML color name。
然后,您可以根据您的字典制作一个颜色列表。
colors = [d[k] for k in df['Site'].values]
最后可以把marker_color=colors
传给fig.add_trace()
如果使用Plotly Express,可以在px.scatter()
中传递参数color_discrete_map
。例如:
px.scatter(df, x='datetime', y='measurement',
color='target',
color_discrete_map={'value1': 'green', 'value2': 'red'})
来源: