Python plotly散点图,从dataframe中获取marker颜色
Python plotly scatter chart, take marker color from dataframe
我有以下数据框,我想为其创建一个散点图:
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)
我希望标记颜色是 'color' 列中列出的每个项目的确切颜色,但是,当我使用以下内容时,它会根据该列中的值分配默认颜色,而不是比分配列出的实际颜色:
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', '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',
text='Name',
color='Name',
color_discrete_sequence=df['Color'],
)
fig.update_traces(textposition='bottom center')
本题+答案思路相同:
还有一个建议是使用参数 color_discrete_map
,您可以在其中专门将名称映射到颜色。
我有以下数据框,我想为其创建一个散点图:
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)
我希望标记颜色是 'color' 列中列出的每个项目的确切颜色,但是,当我使用以下内容时,它会根据该列中的值分配默认颜色,而不是比分配列出的实际颜色:
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', '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',
text='Name',
color='Name',
color_discrete_sequence=df['Color'],
)
fig.update_traces(textposition='bottom center')
本题+答案思路相同:
还有一个建议是使用参数 color_discrete_map
,您可以在其中专门将名称映射到颜色。