“ggridges”图中的多个变量

我发现了这个惊人的 R 包 ggridges 并想将它用于图表,但是,我无法执行代码,因为我可能错误地放置了我的变量。我希望有人能指导我获得我想要的结果。

请参阅下面的 R 表格

数据框

g<-data.frame(structure(list(session = c("s1","s1","s2","s3","s4","s5","s6","s7","s7"),interval = structure(c(1L,1L,2L,3L,4L,5L,6L,7L,8L,9L,10L,11L,12L,7L),.Label = c("120","240","360","480","600","720","840","960","1080","1200","1320","1440"),class = "factor"),person = c("person2","person1","person2","person1"),counts = c(12L,51L,15L,43L,54L,42L,73L,38L,58L,13L,62L,40L,21L,31L,27L,29L,17L,22L,25L,26L,18L,19L,36L,20L,14L,23L,8L)),row.names = c(NA,-91L),class = c("tbl_df","tbl","data.frame")))

  • session:是我的数据的分组上下文
  • 间隔:是每个会话中的常规预定义时隙/标记(此处:每 120 秒)
  • person:数据来自两个人
  • counts:是每个会话中每个人在每个间隔内进行的观察次数

R 代码

我首先试验了 ggridges 的代码:

ggplot(
  g,aes(x = `counts`,y = `session`,fill = stat(x))
  ) +
  geom_density_ridges_gradient(scale = 3,size = 0.3,rel_min_height = 0.01) +
  scale_fill_viridis_c(name = "counts",option = "C")

输出

这个输出看起来很有希望。添加以下行 + facet_grid(.~person) 将为我提供第 1 个人和第 2 个人的图表,这正是我要找的。很高兴看到颜色代表计数的频率(颜色越深代表计数越少,颜色越浅代表计数越多)

“ggridges”图中的多个变量

问题描述

我对代码的主要问题是,无论我如何扭曲和调整它(添加 height = counts,fill= counts),我都看不到图表,因为代码的某些部分有效而其他部分无效。尤其是

  • session:应该显示在 y 轴上(有效!)
  • 间隔:应该显示在 x 轴上(有效!)
  • counts:应显示为密度曲线的高度,并根据计数频率具有不同的渐变颜色(不起作用! )
  • person:我想为第 1 个人和第 2 个人分别绘制图表(如果我添加 + facet_grid(.~person)

所需图表

虽然是用纸笔的方法制作的,不是很优雅,但这就是我想要得到的图形。密度曲线上的峰值(圆圈内)对应于为每个会话和我的数据框中每个人指出的 counts

“ggridges”图中的多个变量

也许我的方法是错误的,并且该软件包不是我正在寻找的软件包,但如果不是,我将不胜感激,如果在 R 方面具有更高专业知识的人可以就此问题向我提供建议。

kubekiki 回答:“ggridges”图中的多个变量

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1628.html

大家都在问