我正在使用seaborn创建箱线图。当我指定用于对框进行分组/着色的列时,框的宽度变得如此狭窄以至于很难看到。我所做的唯一更改是为hue指定了一个参数,该参数指向传递的数据框中的一列。我已经使用“宽度”参数(如所提到的试图在这里),它确实增加了盒形图的宽度,而且在它们被分开的距离。
帮助:如何在指定色相参数时保持框的宽度?
我将在下面显示我的代码和结果:
我的数据框:
Out[3]:
timestamp room_number floor floor_room temperature
0 2016-01-19 09:00:00-05:00 11a06 11 11_11a06 23.0
1 2016-01-19 09:00:00-05:00 east-inner 11 11_east-inner 22.8
2 2016-01-19 09:00:00-05:00 east-window 11 11_east-window 22.9
Run Code Online (Sandbox Code Playgroud)
使用seaborn和奇数箱线图宽度,并使用分组因子:
sns.boxplot(x=xunit, y=var, data=df, order=order, hue='floor')
Run Code Online (Sandbox Code Playgroud)
使用具有合适箱形图宽度但没有分组因子的seaborn:
sns.boxplot(x=xunit, y=var, data=df)
Run Code Online (Sandbox Code Playgroud)
事实证明“hue”参数导致了这个问题(我不知道为什么)。通过从函数中删除此参数/参数,问题就会消失,但您必须提供额外的信息,以便箱线图根据所需的条件进行颜色编码。以下代码行解决了我的问题:
sns.boxplot(x=xunit, y=var, data=df, order=order,palette=df[condition_column].map(palette_dir))
Run Code Online (Sandbox Code Playgroud)
其中,palette_dir 是每个条件的颜色字典,映射到数据列。
箱线图现在看起来很正常,但我正在努力添加图形图例。我希望在这篇文章中解决这个问题的人能给我指出他们的方法。
小智 5
在 0.8 版本(2017 年 7 月)中,dodge添加了该参数
到
boxplot、violinplot和barplot允许在hue不更改绘图元素的位置或宽度的情况下使用,就像hue变量未嵌套在主分类变量中一样。
(发行说明 v0.8.0 )
您的代码如下所示:
sns.boxplot(x=xunit, y=var, data=df, order=order, hue='floor', dodge=False)