Plotly:如何为类别分配特定颜色?

hbs*_*123 7 python colors python-3.x plotly plotly-python

我有一个发电组合的熊猫数据框。因此它由不同燃料发电组成。我想为特定燃料分配特定颜色。 在此输入图像描述 在 Matplotlib 中,通过传递颜色列表可以方便地将特定颜色分配给特定类别,例如

df.plot(kind="bar",color=["红色","绿色","黄色"] 在此输入图像描述

我无法使用 Plotly 为绘图类似地分配颜色。在 Plotly 中将特定颜色分配给特定类别的最佳方法是什么? 在此输入图像描述

ves*_*and 9

如果您的目标是为特定燃料分配特定颜色,那么只要数据集的结构永不改变,就可以很好地工作。但为每个类别指定颜色的方法最好通过以下方式完成:color_discrete_sequence

color_discrete_map = <dict>
Run Code Online (Sandbox Code Playgroud)

在你的情况下:

fig = px.bar(df, color_discrete_map= {'Coal': 'black',
                                      'Oil': 'grey',
                                      'Gas': 'blue'}
            )
Run Code Online (Sandbox Code Playgroud)

这样您就不必依赖变量序列来匹配所需颜色的序列。

示例图(具有不同但结构相同的数据集)

在此输入图像描述

完整代码

import plotly.express as px
import pandas as pd
df = px.data.stocks().set_index('date')
fig = px.bar(df, color_discrete_map= {'GOOG': 'black',
                                      'AAPL': 'grey',
                                      'AMZN': 'blue',
                                      'FB': 'green',
                                      'NFLX': 'red',
                                      'MSFT':'firebrick'}
            )
fig.show()
Run Code Online (Sandbox Code Playgroud)

对于其他选项,请查看Plotly:如何使用plotly.graph_objects和plotly.express定义图形中的颜色??在那里,您将找到如何将颜色顺序更改为您想要的任何颜色顺序,并仍然通过 指定一些例外情况color_discrete_map


Der*_*k O 2

从plotlyexpress中有关颜色序列的文档color_discrete_sequence中,您应该能够使用参数显式定义颜色序列。尝试运行:

fig=px.bar(df1, title="Electricity generation mix of Germany in TwH (2000-2019)", color_discrete_sequence=["black","grey","lightgrey","red","rosybrown","blue","limegreen","yellow","forestgreen"])
Run Code Online (Sandbox Code Playgroud)