Python plotly散点图,从数据框中获取标记颜色

问题描述

我有以下数据框,我想为其创建一个散点图:

dict1 = {'Name':['Tom','nick','krish','jack','jill'],'Last':[20,21,19,18,15],'Change':[-1,-5,1,3,-5],'Color':['#30C030','#9acd32','#f08080','#FF1E3E','#FF1E3E']}

df = pd.DataFrame(dict1)

我希望标记颜色是“颜色”列中列出的每个项目的确切颜色,但是,当我使用以下内容时,它会根据该列中的值分配认颜色,而不是分配实际颜色列出的颜色:

fig = px.scatter(df,x = 'Last',y = 'Change',template = 'plotly_dark',text = 'Name',color = 'Color'
            )
fig.update_traces(textposition='bottom center')
fig

解决方法

import pandas as pd
import plotly.express as px

df = pd.DataFrame({'Name': ['tom','nick','krish','jack','jill'],'Last': [20,21,19,18,15],'Change': [-1,-5,1,3,-5],'Color': ['#30C030','#9acd32','#f08080','#FF1E3E','#FF1E3E']})

fig = px.scatter(df,x='Last',y='Change',template='plotly_dark',text='Name')

fig.update_traces(marker=dict(color=df['Color']),textposition='bottom center')

fig.show()
,

您也可以通过设置参数 color_discrete_sequence=df['Color'] 来做到这一点。
您在那里定义要使用的离散颜色:

import pandas as pd
import plotly.express as px

dict1 = {'Name': ['Tom','#FF1E3E'],}

df = pd.DataFrame(dict1)

fig = px.scatter(
    df,text='Name',color='Name',color_discrete_sequence=df['Color'],)

fig.update_traces(textposition='bottom center')

这个问题+答案包含相同的想法:
Plotly: How to assign specific colors for categories?

还有一个建议是使用参数 color_discrete_map,您可以在其中专门将名称映射到颜色。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...