我想用ggplot创建一个分裂小提琴密度图,就像seaborn文档的这个页面上的第四个例子一样.
这是一些数据:
set.seed(20160229)
my_data = data.frame(
y=c(rnorm(1000), rnorm(1000, 0.5), rnorm(1000, 1), rnorm(1000, 1.5)),
x=c(rep('a', 2000), rep('b', 2000)),
m=c(rep('i', 1000), rep('j', 2000), rep('i', 1000))
)
Run Code Online (Sandbox Code Playgroud)
我可以像这样绘制躲闪的小提琴:
library('ggplot2')
ggplot(my_data, aes(x, y, fill=m)) +
geom_violin()
Run Code Online (Sandbox Code Playgroud)
但是在视觉上比较并排分布中不同点的宽度很难.我无法在ggplot中找到任何拆分小提琴的例子 - 这可能吗?
我找到了一个基本的R图形解决方案,但功能很长,我想突出显示分布模式,这些模式很容易在ggplot中作为附加层添加,但如果我需要弄清楚如何编辑该功能将更难.
为了清楚起见,我正在寻找一种简单的方法来添加 90 度旋转的直方图或密度图,其 x 轴与下面给出的示例图的 y 轴对齐。
library(ggplot2)
library(tibble)
x <- seq(100)
y <- rnorm(100)
my_data <- tibble(x = x, y = y)
ggplot(data = my_data, mapping = aes(x = x, y = y)) +
geom_line()
Run Code Online (Sandbox Code Playgroud)

由reprex 包(v0.2.1)于 2019-01-28 创建