R 同一图中的几个分布——使用ggplot2中的geom_密度函数

R 同一图中的几个分布——使用ggplot2中的geom_密度函数,r,ggplot2,tidyverse,R,Ggplot2,Tidyverse,我想我很快就能完成这段代码了,但我在这里遗漏了一些东西。 我想将两个图“组合”为一个,如下所示: 第一个绘图具有以下代码: ggplot(test, aes(y=key,x=value)) + geom_path()+ coord_flip() 第二个是下面这个: ggplot(test, aes(x=value, fill=key)) + geom_density() + coord_flip() 当我们读到正态分布时,这种多重分布图经常出现在统计手册中。到目前

我想我很快就能完成这段代码了,但我在这里遗漏了一些东西。 我想将两个图“组合”为一个,如下所示:

第一个绘图具有以下代码:

  ggplot(test, aes(y=key,x=value)) + 
  geom_path()+
  coord_flip()
第二个是下面这个:

  ggplot(test, aes(x=value, fill=key)) +
  geom_density() +
  coord_flip()
当我们读到正态分布时,这种多重分布图经常出现在统计手册中。到目前为止,我得到的最有用的链接是这个

请使用此代码重现我的问题:

library(tidyverse)
test <- data.frame(key = c("communication","gross_motor","fine_motor"),
                   value = rnorm(n=30,mean=0, sd=1))
ggplot(test, aes(x=value, fill=key)) +
  geom_density() +
  coord_flip()

ggplot(test, aes(y=key,x=value)) + 
  geom_path(size=2)+
  coord_flip()
库(tidyverse)

测试我认为最简单的方法是使用
facet\u wrap()
。如果您不喜欢面的默认外观,可以使用
theme()
对其进行调整,例如:

ggplot(test, aes(x=value, fill=key)) +
    geom_density() +
    facet_wrap(~ key) +
    coord_flip() +
    theme(panel.spacing.x = unit(0, "mm"))
结果:


您可能对软件包中的山脊线图感兴趣

山脊线图是部分重叠的线条图,创造了山脉的印象。它们对于可视化随时间或空间分布的变化非常有用

库(tidyverse)
图书馆(GG)
种子集(123)
测试拾取接头带宽为0.525

添加中间线:

ggplot(测试,aes(x=值,y=键))+
统计密度脊线(分位数线=真,分位数=2,标度=0.9)+
coord_flip()+
主题()+
无效的
#>拾取接头带宽为0.525

模拟地毯:

ggplot(测试,aes(x=值,y=键))+
几何密度(
抖动的_点=真,
位置=位置\点\抖动(宽度=0.05,高度=0),
点_形状='|',点_大小=3,点_α=1,α=0.7,
) +
主题()+
无效的
#>拾取接头带宽为0.525


由(v0.2.1.9000)于2018年10月16日创建,谢谢,但不知什么原因,当我有三个以上的标签(图例)时,它会分割我的绘图并使用多行。有没有办法修复它并在同一行中绘制所有结果?尝试
facet\u wrap(~key,nrow=1)
强制单行布局。成功了!非常感谢!!这个答案太棒了!谢谢(我现在一直在看,在那里我找到了这个包的旧版本——ggjoy)。我向你致敬我很乐意帮忙@路易斯:也看看这些&太棒了。我在下一篇论文中引用了“ggjoy包版本0.3.0用于计算和绘制内核密度估计()”。再次感谢!