我希望将分类变量可视化为seaborn stripplot中的标记样式,但似乎不太可能。有没有一个简单的方法来做到这一点。例如,我试着运行这段代码
tips = sns.load_dataset("tips")
sns.stripplot(x="day", y="total_bill", hue="time", style="sex", jitter=True, data=tips)
这失败了。另一种方法是使用relplot,它确实提供了选项,但无法插入jitter
,这使得可视化效果不那么好。
sns.relplot(x="day", y="total_bill", hue="time", data=tips, style="sex")
作品提供此
有没有什么方法可以使用stripplot/catplot/swarmplot来做到这一点?
编辑:This问题相关。然而,那里的解决方案似乎不允许生成大小的图例(并且相当过时)。
2条答案
按热度按时间pobjuy321#
sns.relplot
是依赖于轴级函数sns.scatterplot
的图形级函数。sns.scatterplot
有一个参数x_jitter
,不幸的是目前没有效果(seaborn 0.11.2)。您可以通过掌握点的位置、添加一些随机抖动并再次指定这些位置来模拟该功能。
下面是一个例子:
使用
sns.relplot
,您可以迭代所有子图:fslejnso2#
使用seaborn的对象接口(从0.12版本开始),现在可以如下所示: