【发布时间】:2023-01-25 21:50:19
【问题描述】:
给定一个包含 2 个组的数据框:(group1, group2),其值 > 和 < 小于 0: 阴谋:
- 条形图
- x = x
- y = 值,除以组 1、组 2
- 颜色 = 红色如果值<0,绿色如果值>0
- 图例以不同颜色显示组 1、组 2。
然而,我当前的代码并没有像我预期的那样着色,并且图例以相同的颜色显示:
import pandas as pd
import numpy as np
import plotly.express as px
df = pd.DataFrame( {
"x" : [1,2,3],
"group1" : [np.nan, 1, -0.5],
"group2" : [np.nan, -0.2, 1],
}).set_index("x")
df_ = df.reset_index().melt(id_vars = 'x')
fig = px.bar(df_, x='x', y='value', color='variable', barmode='group')
fig.update_traces(marker_color=['red' if val < 0 else 'green' for val in df_['value']], marker_line_color='black', marker_line_width=1.5)
fig.show()
【问题讨论】:
-
抱歉,我编辑的 plotly.express
-
如果您选择根据 x 值单独对颜色条进行着色,那么图例颜色就没有任何意义吗?