首页 > 解决方案 > 如何使用 python 在 plotly 中更改图例/标记颜色?

问题描述

很简单,当我告诉情节根据特征(在这种情况下是碳数)为条形着色时,我对它为每个组选择的默认颜色不满意(参见下面的条形图 png 链接)。如何手动调整图例/标记颜色?

我的代码目前如下:

import pandas as pd
import plotly.express as px
import numpy as np
import plotly.graph_objects as go

df = pd.read_csv('E vs I data ab.csv')

core_data = df.loc[df['isomer_grade']=='major']

fig = px.bar(core_data, x="isomer", y="19C002",  title="19C002", width=800, height=650, color="homologue")
             
fig.update_xaxes(showgrid=False, showline=True, mirror=True, linecolor='#E3E2E2', linewidth=2, title_text=' ')
fig.update_yaxes(showgrid=True, showline=True, mirror=True, linecolor='#E3E2E2', linewidth=2, 
                 ticks='outside', gridcolor='#FFFFFF', title_text='Exterior/Interior')

fig.update_layout(title=dict(x=.8, y=0.8))

fig.update_layout(yaxis=dict(range=[0,5]))
               
fig.update_layout(
    font_color="#939393",
    font_size=17,
    title_font_size=22,
    title_font_color="#939393",
)
    
fig.update_traces(marker_line_color='#FFFFFF', marker_line_width=1.5, opacity=1)

fig.layout.plot_bgcolor = '#E3E2E2'

fig.show()

根据碳数着色的条形图 - 示例

标签: colorsbar-chartplotly-pythonlegend-properties

解决方案


刚找了朋友帮我。更新的代码看起来像这样

import pandas as pd
import plotly.express as px

df = pd.read_csv('E vs I data ab.csv')
core_data = df.loc[df['isomer_grade'] == 'major']
colors = ['#2F45AC', '#4045C3', '#6B57DD', '#9165E4', '#BF72F1', '#CF8EE9', '#E9A2F9', '#F6C4FE']
fig = px.bar(core_data, x="isomer", y="19C002",  title="19C002", width=800,
             height=650, color="homologue", color_discrete_sequence=colors)
fig.update_xaxes(showgrid=False, showline=True, mirror=True,
                 linecolor='#E3E2E2', linewidth=2, title_text=' ')
fig.update_yaxes(showgrid=True, showline=True, mirror=True,
                 linecolor='#E3E2E2', linewidth=2, ticks='outside',
                 gridcolor='#FFFFFF', title_text='Exterior/Interior')
fig.update_layout(title=dict(x=.8, y=0.8))
fig.update_layout(showlegend=False)
fig.update_layout(yaxis=dict(range=[0, 5]))
fig.update_layout(font_color="#939393", font_size=17, title_font_size=22,
                  title_font_color="#939393")
fig.update_traces(marker_line_color='#FFFFFF', marker_line_width=1.5,
                  opacity=1)
fig.layout.plot_bgcolor = '#E3E2E2'
fig.show()

只需插入您自己的颜色!


推荐阅读