R ggplot2中的分组反向条形图

R ggplot2中的分组反向条形图,r,ggplot2,R,Ggplot2,我想重现这个情节: 我的数据如下所示: 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) 我不知道如何从条形图到“分组”条形图,如图中所示 我们的目标是在X轴上为每个工作周编号提供此分布,以便我可以看到分布在时间内的变化 我不是说: ggp

我想重现这个情节:

我的数据如下所示:

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)
我不知道如何从条形图到“分组”条形图,如图中所示

我们的目标是在X轴上为每个工作周编号提供此分布,以便我可以看到分布在时间内的变化

我不是说:

ggplot(df,aes(leafnumber, PU, fill=weeknumber)) +
  geom_bar(stat = "identity") +
  coord_flip()

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

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

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()
库(tidyverse)
图书馆(GG)
#制造“更大”的假数据

leafnumber怎么样?
+facet\u wrap(~weeknumber)
?正如@stefan建议的那样,试试ggplot(df,aes(leafnumber,PU))+geom\u bar(stat=“identity”)+coord\u flip()+facet\u wrap(~weeknumber,strip.position=“bottom”)+theme\u bw()+theme(panel.spacing.x=unit(0,“mm”),panel.grid=element\u blank(),panel.border=element_blank())
谢谢Stefan和Roman!有效:)
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()