[英]Grouping bars in a plot by column value using ggplot2 in R
我沿樣線計算了無脊椎動物的數據。 數據包括 3 列——一列是收集數據的日期,一列是橫斷面識別號,一列是觀察到的物種。
structure(list(Date = c("8/22/2022", "8/22/2022", "8/23/2022",
"8/23/2022", "8/23/2022", "8/23/2022", "8/23/2022", "8/23/2022",
"8/23/2022", "8/23/2022", "8/23/2022", "8/23/2022", "8/23/2022",
"8/23/2022", "8/23/2022", "8/18/2022", "8/18/2022", "8/18/2022",
"8/18/2022", "8/18/2022", "8/18/2022", "8/18/2022", "8/18/2022",
"8/18/2022", "8/18/2022", "8/18/2022", "8/18/2022", "8/18/2022",
"8/23/2022", "8/23/2022", "8/23/2022", "8/23/2022", "8/23/2022",
"8/23/2022", "8/23/2022", "8/23/2022", "8/23/2022", "8/23/2022",
"8/23/2022", "8/23/2022", "8/22/2022", "8/22/2022", "8/22/2022",
"8/22/2022", "8/22/2022", "8/22/2022", "8/22/2022", "8/22/2022",
"8/22/2022", "8/22/2022", "8/22/2022", "8/22/2022", "8/22/2022",
"8/22/2022", "8/22/2022", "8/22/2022", "8/22/2022", "8/22/2022",
"8/22/2022", "8/22/2022", "8/22/2022", "8/22/2022", "8/22/2022",
"8/22/2022", "8/18/2022", "8/18/2022", "8/18/2022", "8/18/2022",
"8/18/2022", "8/18/2022", "8/18/2022", "8/18/2022", "8/18/2022",
"8/16/2022", "8/16/2022", "8/16/2022", "8/16/2022", "8/16/2022",
"8/16/2022", "8/16/2022", "8/16/2022", "8/16/2022", "8/16/2022",
"8/16/2022", "8/16/2022", "8/16/2022", "8/16/2022", "8/16/2022",
"8/16/2022", "8/16/2022", "8/16/2022", "8/16/2022", "8/16/2022",
"8/16/2022", "8/16/2022", "8/16/2022"), Transect = c(8L, 8L,
4L, 4L, 5L, 5L, 5L, 6L, 6L, 7L, 8L, 8L, 9L, 9L, 9L, 4L, 4L, 4L,
5L, 5L, 6L, 6L, 7L, 8L, 8L, 9L, 9L, 9L, 1L, 1L, 1L, 1L, 2L, 2L,
2L, 2L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L,
3L, 3L, 4L, 4L, 5L, 5L, 6L, 6L, 7L, 7L, 8L, 9L, 9L, 9L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 3L, 3L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L,
4L, 4L, 4L, 5L, 6L, 7L, 7L, 7L, 8L, 8L, 8L, 9L, 9L, 9L), Species = c("RCRAB",
"DOL", "DOL", "STAR", "DOL", "RCRAB", "STAR", "DOL", "LOB", "DOL",
"DOL", "RCRAB", "DOL", "LOB", "STAR", "DOL", "LOB", "STAR", "DOL",
"RCRAB", "DOL", "RCRAB", "DOL", "DOL", "RCRAB", "DOL", "STAR",
"RCRAB", "DOL", "STAR", "RCRAB", "URCH", "DOL", "RCRAB", "URCH",
"STAR", "DOL", "LOB", "STAR", "URCH", "DOL", "RCRAB", "STAR",
"URCH", "STAR", "DOL", "URCH", "RCRAB", "DOL", "STAR", "URCH",
"RCRAB", "DOL", "STAR", "DOL", "LOB", "DOL", "RCRAB", "DOL",
"RCRAB", "DOL", "DOL", "STAR", "URCH", "DOL", "STAR", "RCRAB",
"LOB", "DOL", "STAR", "RCRAB", "DOL", "LOB", "DOL", "STAR", "LOB",
"DOL", "STAR", "URCH", "DOL", "STAR", "RCRAB", "DOL", "LOB",
"STAR", "DOL", "DOL", "DOL", "RCRAB", "STAR", "STAR", "DOL",
"RCRAB", "DOL", "STAR", "RCRAB")), class = "data.frame", row.names = c(NA,
-96L))
我想創建一個多圖,其中每個日期都有一個單獨的 plot,X 值是樣帶編號,Y 值是在該樣帶上發現的物種數量。 到目前為止,我有這個:
library(ggplot2)
invertplot <- ggplot(data=invert, aes(Transect, Species)) +
geom_bar(stat='identity') +
labs(title="Number of Invertebrate Species per Transect Steering Rocks August 2022",
y="Number of Species",
x="Transect Number") +
facet_wrap(~Date)
invertplot
這給了我一個 plot ,其中每個物種都列在 Y 軸上,X 軸是整個數據集中該物種的數量。
如何讓 ggplot 按樣帶編號而不是物種對值進行分組? 提前致謝!
如果您想要一個僅計算觀察值的條形 plot,請不要使用stat = "identity"
。 geom_bar
的默認行為是使用stat_count
。 所以我認為你只需要:
library(tidyverse)
ggplot(data = invert, aes(factor(Transect))) +
geom_bar() +
labs(title = paste0("Number of Invertebrate Species per Transect ",
"Steering Rocks August 2022"),
y = "Number of Species",
x = "Transect Number") +
facet_wrap( ~ Date)
如果在同一日期同一樣帶上有多個同一物種的記錄,您只想計算一次,您會更安全:
ggplot(data = invert %>% count(Transect, Species, Date), aes(factor(Transect))) +
geom_bar() +
labs(title = paste0("Number of Invertebrate Species per Transect ",
"Steering Rocks August 2022"),
y = "Number of Species",
x = "Transect Number") +
facet_wrap( ~ Date)
但這為您當前的示例數據提供了相同的 output。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.