我正在使用seaborn来创建一个箱形图。当我指定用于对框进行分组/着色的列时,框的宽度变得非常窄以至于难以看到。我正在做的唯一改变是为hue指定一个参数,它指向传递的数据帧中的一列。我尝试过使用' width'参数(如提到here),它确实增加了箱图的宽度,但也增加了它们分开的距离。
帮助:如何在指定色调参数时保持框的宽度?
我将在下面显示我的代码和结果:
我的数据框:
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
使用具有奇数箱图宽度的seaborn,使用分组因子:
sns.boxplot(x=xunit, y=var, data=df, order=order, hue='floor')
使用具有合理箱线宽度但没有分组因子的海鸟:
sns.boxplot(x=xunit, y=var, data=df)
答案 0 :(得分:4)
结果是' hue'参数导致问题(我不知道为什么)。通过从函数中删除此参数/参数,问题就会消失,但您必须提供额外信息,以便根据所需条件对箱图进行颜色编码。以下代码行修复了我的问题:
sns.boxplot(x=xunit, y=var, data=df, order=order,palette=df[condition_column].map(palette_dir))
其中palette_dir是每个条件的颜色字典,映射到一列数据。
箱形图现在看起来很正常,但我正在努力添加一个图形传奇。我希望解决这个问题的人in this post可以指出我的方法。
答案 1 :(得分:4)
在版本0。0(2017年7月)中,添加了dodge
参数
到
boxplot
,violinplot
和barplot
以允许使用hue
而不更改绘图元素的位置或宽度,就像hue
时一样varible不嵌套在主分类变量中。
您的代码如下所示:
sns.boxplot(x=xunit, y=var, data=df, order=order, hue='floor', dodge=False)