基于字符串值的标记颜色 Plotly Python

问题描述 投票:0回答:1

很简单的问题,但我似乎想不通。我有一个数据框列,有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)))

我知道PlotlyDash需要一个整数。有什么办法可以解决这个问题吗?我如何在标记中绘制站点颜色?

python plotly plotly-dash
1个回答
2
投票

我会从一个映射颜色和站点的字典开始。

d = {
    'ABC':'red',
    'DEF':'green',
    'GHI':'black'
}

你可以使用任何 HTML颜色名称 在那里,你可以根据你的口述制作一个颜色列表。

然后,你可以根据你的dict制作一个颜色列表。

colors = [d[k] for k in df['Site'].values]

最后,您可以通过 marker_color=colorsfig.add_trace()

© www.soinside.com 2019 - 2024. All rights reserved.