首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ggplot2中的分组反转条形图

ggplot2中的分组反转条形图
EN

Stack Overflow用户
提问于 2021-04-16 18:00:59
回答 1查看 34关注 0票数 2

我想重新创建这个图:

我的数据如下所示:

代码语言:javascript
复制
leafnumber <- c(6,7,8,9,6,7,8,9)
PU <- c(30,15,7,0,10,36,7,9)
weeknumber <- c(8,8,8,8,9,9,9,9)

df <- data.frame(leafnumber, PU, weeknumber)

所以我希望叶子编号在Y轴上结束,PU在X轴上结束。和weeknumber可以用来显示随时间的分布。

这是我的第一次尝试:

代码语言:javascript
复制
ggplot(df,aes(leafnumber, PU)) +
  geom_bar(stat = "identity") +
  coord_flip()

我不确定如何将条形图转换为“分组”条形图,就像图像中的条形图。

我们的目标是在X轴上得到每个星期的分布,这样我就可以看到分布在时间上的变化。

我的意思不是这样:

代码语言:javascript
复制
ggplot(df,aes(leafnumber, PU, fill=weeknumber)) +
  geom_bar(stat = "identity") +
  coord_flip()

对此问题的任何建议/解决方案都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2021-04-16 19:11:40

如果您的实际数据集具有每个叶/ PU的大量观测值,则可以使用ggridges package来获得类似的图,例如

代码语言:javascript
复制
library(tidyverse)
library(ggridges)

# Make 'larger' fake data
leafnumber <- c(runif(1, 6, n = 100),
                runif(3, 9, n = 100),
                runif(5, 12, n = 100),
                runif(10, 15, n = 100),
                runif(15, 18, n = 100))

PU <- factor(c(rep("1", 100), rep("2", 100),
        rep("3", 100), rep("4", 100), rep("5", 100)),
        levels = c("1", "2", "3", "4", "5"))

weeknumber <- c(8,8,8,8,8,9,9,9,9,9)

df <- data.frame(leafnumber, PU, weeknumber)

# Plot the data
ggplot(df, aes(x = leafnumber, y = PU, height = stat(density))) + 
  geom_density_ridges(stat = "binline", bins = 40,
                      scale = 0.95, draw_baseline = FALSE) +
  coord_flip()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67123135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档