Python小提琴图

3
如何使用ggplot2制作类似于R中的小提琴图?在ggplot2中,您可以创建漂亮的小提琴图,如下所示:
ggplot(dat,aes(value,prob)) + 
geom_violin() + 
geom_jitter(alpha=0.1) + 
scale_y_log10() +
labs(x="test values", y="prob")

您可以获得像这样的漂亮图像:enter image description here

如何在Python中实现相同的效果?我已经查看了matplotlib.pyplot.violinplot,但是没有得到类似的结果。

1个回答

2

使用seaborn(请注意,这是使用开发版本;在当前版本中,事情有点不同,但确实可以制作小提琴图):

sns.violinplot(x=value, y=prob, inner=None, color="white", cut=0)
sns.stripplot(x=value, y=prob, jitter=.3,  color="black", alpha=.1, size=4)

enter image description here

这两个函数都返回matplotlib axes对象,您可以在该对象上执行ax.set_yscale("log")以使用对数轴。请注意,这会在拟合KDE之后设置比例(我不确定ggplot会做什么)。


我认为在这篇文章中加入指向http://stanford.edu/~mwaskom/software/seaborn/index.html的链接会很有益——我不确定seaborn是一个非常知名的库,尽管它在这里似乎非常合适。 - J Richard Snape
嘿,谢谢回复。我没能让你的代码运行起来,似乎sns.violinplot需要一个数据框而不是x、y值。怎样设置它呢? - Twinhelix
这个也很不错:http://pyinsci.blogspot.com/2009/09/violin-plot-with-matplotlib.html - Bastiaan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接