【问题标题】:Python plotly scatter chart, take marker color from dataframe [duplicate]Python plotly散点图,从数据框中获取标记颜色[重复]
【发布时间】:2021-04-20 10:11:45
【问题描述】:

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

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

【问题讨论】:

    标签: python pandas plotly plotly-python plotly-express


    【解决方案1】:

    您也可以通过设置参数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')
    

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

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

    【讨论】:

      【解决方案2】:
      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()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-13
        • 2020-12-04
        相关资源
        最近更新 更多