📜  如何使用 Seaborn 调色板为箱线图着色?

📅  最后修改于: 2022-05-13 01:55:32.637000             🧑  作者: Mango

如何使用 Seaborn 调色板为箱线图着色?

箱线图是通过四分位数描述的数值数据组的可视化表示。 Boxplot 还用于检测数据集中的异常值。它使用简单的盒子和胡须有效地捕获数据摘要,并允许我们轻松地进行跨组比较。

将正确的颜色集添加到 Boxplot 可以揭示许多以前从未见过的不同模式。 Seaborn Color Palette 使在 Boxplot 中添加颜色变得非常容易。本文将解释如何使用 Seaborn 调色板为箱线图着色。

有两种使用 Seaborn 调色板为 Boxplot 着色的方法

1) 使用预定义的 seaborn 调色板

这可以通过在 boxplot()函数中添加一个调色板参数并给它任何预定义的 seaborn 调色板值来完成,如“Set1”、“Set2”、“Paired”、“Set3”等。

第 1 步:创建数据框。

Python3
# import the required library
import seaborn as sns 
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
  
#Generate some random data
np.random.seed(45)
df = pd.DataFrame({
    'Corn': np.random.normal(40, 15, 100),
    'Rice': np.random.normal(60, 10,100),
    'Wheat': np.random.normal(80, 5, 100),
    'Peas': np.random.normal(30, 13, 100),
})
print(df)


Python3
# Since the above data is in wide
# form we convert it into long
# form using melt function
data_df = df.melt(var_name='Pulses',
                  value_name='Tons Consumed')
print(data_df)


Python3
# Create boxplot and add palette
# with predefined values like Paired, Set1, etc
sns.boxplot(x="Pulses", y="Tons Consumed",
            data=data_df, palette="Paired")


Python3
sns.boxplot(x="Pulses", y="Tons Consumed",
            data=data_df, palette="Set1")


Python3
#create your own color array
my_colors = ["#9b59b6", "#3498db", 
             "#2ecc71", "#006a4e"]
  
# add color array to set_palette
# function of seaborn
sns.set_palette( my_colors )
  
# make boxplot
sns.boxplot( x = "Pulses", y = "Tons Consumed",
            data = data_df)


输出:

第 2 步:使用 pandas.melt() 将宽转换为长

蟒蛇3

# Since the above data is in wide
# form we convert it into long
# form using melt function
data_df = df.melt(var_name='Pulses',
                  value_name='Tons Consumed')
print(data_df)

输出:

第 3 步:创建箱线图以使用调色板。

蟒蛇3

# Create boxplot and add palette
# with predefined values like Paired, Set1, etc
sns.boxplot(x="Pulses", y="Tons Consumed",
            data=data_df, palette="Paired")

输出:

使用不同的颜色:

蟒蛇3

sns.boxplot(x="Pulses", y="Tons Consumed",
            data=data_df, palette="Set1")

输出:

2)手动创建自己的调色板并使用它

方法:

  • 创建您自己的颜色数组。
  • 使用 seaborn 的 set_palette()函数并将您的数组名称添加为参数。
  • 调用 boxplot()函数制作箱线图

蟒蛇3

#create your own color array
my_colors = ["#9b59b6", "#3498db", 
             "#2ecc71", "#006a4e"]
  
# add color array to set_palette
# function of seaborn
sns.set_palette( my_colors )
  
# make boxplot
sns.boxplot( x = "Pulses", y = "Tons Consumed",
            data = data_df)