我的問題很簡單。我正在嘗試在 ggplot2 中創建百分比堆疊條形圖。我確切地知道我想要它是什么樣子,因為我已經在 Excel 中創建了相同的圖表,但我不知道如何在 R 中獲得相同的圖表。
我的問題是我代碼中的“填充”對應兩組資料:我的x軸是巢箱數,我的y軸是百分比(0%-100%),填充應該分為雄性和雌性(例如,在 5(b) 號巢箱中有 3 只寄生蟲,2 只雌性和 1 只雄性,因此該列應分為 67% FF 和 33% MM)。
這是我的資料集:
> dput(broods_2020)
structure(list(`Age.(days)` = c("7-10 days", "15-20 days", "5-7
days",
"5-7 days", "5-7 days", "15-20 days", "6-8 days", "5-7 days",
"13-15 days", "10-12 days", "7-10 days", "8-10 days", "5-7 days",
"8-10 days", "20-25 days", "7-10 days", "8-10 days", "10-12 days",
"15-20 days", "15-20 days", "10-12 days", "12-15 days"), `Nest-
box.number.(x.brood)` = c(" 5 (a)",
"5 (b)", "7", "10", "11 (a)", "12", "27", "31", "37 (a)", "40",
"41", "200", "202", "205", "1 west", "5 west", "A3", "B7", "B8",
"B11", "C18", "C21"), `N.(Carnus)` = c(4, 3, 13, 36, 10, 8, 8,
17, 6, 3, 13, 8, 8, 9, 5, 10, 22, 28, 8, 8, 1, 3), MM = c(2,
1, 5, 13, 5, 3, 2, 8, 2, 2, 5, 4, 3, 4, 3, 5, 10, 9, 1, 3, 1,
1), FF = c(2, 2, 8, 23, 5, 5, 6, 9, 4, 1, 8, 4, 5, 5, 2, 5, 12,
19, 7, 5, 0, 2)), row.names = c(NA, 22L), class = "data.frame")
這是我的代碼:
ggplot(broods_2020, aes(x=broods_2020$"Nest-box.number.(x.brood)",y=broods_2020$"MM",broods_2020$"FF",fill=broods_2020$"N.(Carnus)",)) geom_col()
geom_bar(position="fill", stat="identity")
geom_bar(fill="#290DFB","#FF0000")
scale_y_continuous(labels = scales::percent_format(accuracy = 1))
xlab("Nest box") ylab("Collected Carnus hemapterus (%)")
ggtitle("2020 - PARASITE SEX RATIO (per brood)")
theme(axis.line.x = element_line(colour = 'black', size=0.5,
linetype='solid'),
axis.line.y = element_line(colour = 'black', size=0.5,
linetype='solid'))
theme(title = element_text(face="plain", size = 12))
theme(plot.title = element_text(hjust = 0.5, vjust =2))
theme(axis.text.x = element_text(angle = 45, hjust=1))
theme(panel.background = element_blank())
我的資料集中有問題嗎?如何創建此圖表?
uj5u.com熱心網友回復:
這更接近您要找的東西嗎?
如果涉及幾個步驟:
pivot_wider
作為sex
一個變數和n
另一個變數 - 這就是允許您設定顏色來代表每種性別的原因n
作為值傳遞y
給aes
和sex
作為fill
值geom_col(position = "fill")
然后為每個x
值 (Nest-box.number.(x.brood)
)填充條形圖 100%- 你只需要
geom_
一層 -geom_bar
不需要 - 設定填充顏色以匹配
MM
并FF
在中完成scale_fill_manual(values = ...)
library(ggplot2)
library(tidyr)
broods_2020 |>
pivot_longer(c(MM, FF), names_to = "sex", values_to = "n") |>
ggplot(aes(x = `Nest-box.number.(x.brood)`, y = n, fill = sex))
geom_col(position = "fill")
scale_fill_manual("Sex", values = c("MM" = "#290DFB", "FF" = "#FF0000"))
scale_y_continuous("Percent", labels = scales::percent_format(accuracy = 1))
xlab("Nest box") ylab("Collected Carnus hemapterus (%)")
ggtitle("2020 - PARASITE SEX RATIO (per brood)")
theme(
axis.line.x = element_line(
colour = 'black',
size = 0.5,
linetype = 'solid'
),
axis.line.y = element_line(
colour = 'black',
size = 0.5,
linetype = 'solid'
)
)
theme(title = element_text(face = "plain", size = 12))
theme(plot.title = element_text(hjust = 0.5, vjust = 2))
theme(axis.text.x = element_text(angle = 45, hjust = 1))
theme(panel.background = element_blank())
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/537497.html
標籤:r图表2几何条堆叠条形图