Python-按标签以绘图方式指定散点图颜色

Python-按标签以绘图方式指定散点图颜色,python,plotly,Python,Plotly,我试图复制到Python中,但发现这是不可能的 同样的问题在R中也得到了解决: trace0=go.Scatter(x=x1,y=y1,mode='markers', name=ytitle+X对+Atitle, 标记=dict(大小=4,符号='圆圈', color=colorsIdx,colorbar=go.colorbar(title='colorbar'), 色标(='Viridis') ) 我得到的最接近的方法是使用颜色条,但这是次优的,因为我不知道如何挑选颜色,使它们不会混合在一

我试图复制到Python中,但发现这是不可能的

同样的问题在R中也得到了解决:

trace0=go.Scatter(x=x1,y=y1,mode='markers',
name=ytitle+X对+Atitle,
标记=dict(大小=4,符号='圆圈',
color=colorsIdx,colorbar=go.colorbar(title='colorbar'),
色标(='Viridis')
)

我得到的最接近的方法是使用颜色条,但这是次优的,因为我不知道如何挑选颜色,使它们不会混合在一起,然后颜色图例使图形看起来像是有一些连续的数据在进行,而事实并非如此。

使用字典并相应地映射颜色:

import pandas as pd 
import plotly.plotly as py
import plotly.graph_objs as go

d  = {'x': [1, 2, 3], 'y': [3, 4, 5], 'z': ['A', 'B', 'A']}
df = pd.DataFrame(data=d)

colorsIdx = {'A': 'rgb(215,48,39)', 'B': 'rgb(215,148,39)'}
cols      = df['z'].map(colorsIdx)

# Create a trace
trace = go.Scatter(
    x = df.x,
    y = df.y,
    mode = 'markers',
    marker=dict(size=15, color=cols)
)

data = [trace]
py.iplot(data)

我不知道这件事。我有一个有十几个不同级别的熊猫数据框。我真的需要为每个级别手动设置颜色吗?@mic colorsidx是一个dict,因此您可以创建字典理解并使用random()函数或range()指定颜色。这将遍历可用标签并按顺序或随机分配颜色。简而言之:
{i:k代表df.columns中的i代表k(len(df.columns))}
@Info5ek-Doh!你是对的,我总是忘记理解。。。谢谢我来到这里是因为我正在研究一个类似的问题。我在下面分享我的代码,它可以随机生成N种颜色,然后使用dict理解将它们分配给您的P类别