如何从条形图中获取多条轨迹的条形颜色?

How to get bar colors of multiple traces from bar chart?

我使用循环创建了一个包含多条轨迹的条形图。每条迹线的颜色由 plotly 自动分配。现在图表已经完成,如何获得所有痕迹的颜色?我需要将这些相同的颜色分配给子图中的另一个散点图,以使颜色保持一致。非常感谢您的帮助。


for i in range (10):
            fig.add_trace(
                    go.Bar(
                        x=weights_df_best.index,
                        y=weights_df_best[col].values,
                        name = col,
                        text=col,
                        hoverinfo='text',
                        legendgroup = '1',
                        offsetgroup=0,
                        ),
                    row=1,
                    col=1,
                         )

如果您想在生成图形后将颜色放入列表中,只需 运行:

colors = []
fig.for_each_trace(lambda t: colors.append(t.marker.color))

如果您在下面的完整代码段中使用该方法,您将得到

['#636efa', '#EF553B', '#00cc96']

情节

完整代码:

import plotly.express as px
df = px.data.medals_long()
fig = px.bar(df, x="medal", y="count", color="nation", text_auto=True)

colors = []
fig.for_each_trace(lambda t: colors.append(t.marker.color))
colors