将分组条形图中每个条形图的颜色更改为自定义颜色

时间:2021-07-16 04:10:37

标签: python charts colors plotly

我正在尝试为绘图图表中的每个条形使用自定义六进制代码,但我无法解决这个问题。

有人可以帮我吗。

下面是我使用的代码

#Defining Custom Colors
colours = {'Base_Models': '#0C3B5D',
          'Standard_scaled_scores': '#3EC1CD',
          'Min_Max_scaled_scores': '#EF3A4C',
          'Scaling & feature selection_scores': '#FCB94D'}


import plotly.express as px

fig = px.bar(compareModels_aft_Cleansing, x="Base_Models", y=["Base_Models_Scores",
                                                     "Standard_scaled_scores", "Min_Max_scaled_scores",
                                                     "Scaling & feature selection_scores"],
              title="Training Scores", barmode='group', text = 'value',
            hover_name="Base_Models",
            hover_data={'Base_Models':False},     # remove species from hover data                    
                            color = colours)

1 个答案:

答案 0 :(得分:0)

  • 你没有提供样本数据,所以我已经合成了
  • 你的颜色映射,据我所知你的数据框不正确。您将 Base_Models_Scores 绘制为条形图而不是 Base_Models,这是 x 轴
  • 您需要的参数是 color_discrete_map 以达到您的要求
import pandas as pd
import numpy as np

# Defining Custom Colors
colours = {
    "Base_Models_Scores": "#0C3B5D",
    "Standard_scaled_scores": "#3EC1CD",
    "Min_Max_scaled_scores": "#EF3A4C",
    "Scaling & feature selection_scores": "#FCB94D",
}

# generate sample data...
compareModels_aft_Cleansing = pd.DataFrame(
    {
        **{"Base_Models": colours.keys()},
        **{
            c: np.random.randint(1, 4, len(colours.keys()))
            for c in colours.keys()
        },
    }
)


import plotly.express as px

fig = px.bar(
    compareModels_aft_Cleansing,
    x="Base_Models",
    y=[
        "Base_Models_Scores",
        "Standard_scaled_scores",
        "Min_Max_scaled_scores",
        "Scaling & feature selection_scores",
    ],
    title="Training Scores",
    barmode="group",
    text="value",
    hover_name="Base_Models",
    hover_data={"Base_Models": False},  # remove species from hover data
    color_discrete_map=colours,
)

fig

enter image description here