seaborn 带状图中的色调属性不会改变点的颜色[重复]

问题描述 投票:0回答:1

我正在使用 seaborn 对图在箱线图之上绘制数据点。我希望成对图中的点与其类别相对应。我添加了一个hue=category的属性,但它实际上并没有改变标记的颜色或允许我创建每种颜色对应的图例。

我的数据集是一个大型的 covid 19 数据集,我无法在此处上传,但本质上我正在绘制世界每个地区疫苗接种百分比与死亡人数的箱线图。我当前的代码如下:

box= sns.boxplot(
    data= covid_by_region,
    y= 'vac_v_death',
    color= 'white'
)

points= sns.stripplot(
    data= covid_by_region,
    y= 'vac_v_death',
    hue= 'region',
    size= 10,
    palette= 'Set2'    
)

结果图为: Boxplot

我不明白为什么色调在成对图上不起作用,无法为每个区域设置不同的颜色。

python seaborn boxplot hue
1个回答
2
投票

您在问题中指出您正在使用配对图,但代码显示

stripplot
。我希望您问为什么这些点没有不同的颜色。
stripplot
期望 X 和 Y 轴数据给出您期望的颜色。您可以为
x
提供一个虚拟变量,这将给出所需的结果。

带有虚拟数据的简单代码,让您了解必须做什么...

data = {'region': ['A', 'C', 'B', 'D'],
        'dummy':['X', 'X', 'X', 'X'], 
        'vac_v_death': [3, 10, 6, 1]}
df=pd.DataFrame(data)

box= sns.boxplot(data= df, y= 'vac_v_death', color= 'white')

ax=sns.stripplot(data= df, x='dummy', y= 'vac_v_death', hue= 'region', size= 10, palette= 'Set2')

ax.get_xaxis().set_visible(False) #Remove the tick and label for dummy

输出图

© www.soinside.com 2019 - 2024. All rights reserved.