如何使用 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")
输出:
Possible palette values are:
Accent, Accent_r, Blues, Blues_r, BrBG, BrBG_r, BuGn, BuGn_r, BuPu, BuPu_r,
CMRmap, CMRmap_r, Dark2, Dark2_r, GnBu, GnBu_r, Greens, Greens_r, Greys, Greys_r,
OrRd, OrRd_r, Oranges, Oranges_r, PRGn, PRGn_r, Paired, Paired_r, Pastel1, Pastel1_r,
Pastel2, Pastel2_r, PiYG, PiYG_r, PuBu, PuBuGn, PuBuGn_r, PuBu_r, PuOr, PuOr_r, PuRd,
PuRd_r, Purples, Purples_r, RdBu, RdBu_r, RdGy, RdGy_r, RdPu, RdPu_r, RdYlBu, RdYlBu_r,
RdYlGn, RdYlGn_r, Reds, Reds_r, Set1, Set1_r, Set2, Set2_r, Set3, Set3_r, Spectral,
Spectral_r, Wistia, Wistia_r, YlGn, YlGnBu, YlGnBu_r, YlGn_r, YlOrBr, YlOrBr_r, YlOrRd,
YlOrRd_r, afmhot, afmhot_r, autumn, autumn_r, binary, binary_r, bone, bone_r, brg, brg_r,
bwr, bwr_r, cividis, cividis_r, cool, cool_r, coolwarm, coolwarm_r, copper, copper_r, cubehelix
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)