簡體   English   中英

ggplot2 中的分組反向條 plot

[英]Grouped reversed bar plot in ggplot2

我想重新創建這個 plot:

示例_1.png

我的數據如下所示:

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)

所以我希望leafnumber最終在Y軸上,PU在X軸上。 weeknumber 可用於顯示一段時間內的分布。

這是我的第一次嘗試:

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

我不確定如何從條形圖 plot 到“分組”條形圖,就像圖像中的那個。

目標是在 X 軸上為每個周數提供此分布,以便我可以看到分布隨時間的變化。

我的意思不是這個:

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

對此問題的任何建議/解決方案將不勝感激。

如果您的實際數據集對每個葉子 / PU 有大量觀察,您可以使用ggridges package來獲得類似的 plot,例如

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()

示例_1.png

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM