![](/img/trans.png)
[英]Multiple variables *with different options* on the same grouped boxplot in ggplot2?
[英]ggplot2 grouped boxplot doesn't separate groups for different timepoints
我有一個包含兩組的簡單數據集,每個組在 4 個不同的時間點都有一個值。 我想隨着時間的推移將此數據集顯示為分組箱線圖,但 ggplot2 不分隔時間點。
這是我的數據:
matrix
Replicate Line Day Treatment X A WT Marker Proportion
1 C 10 low NA HuCHuD_Pos 8.62
2 C 10 low NA HuCHuD_Pos NA
1 C 18 low NA HuCHuD_Pos 30.50
3 C 18 low NA HuCHuD_Pos NA
2 C 18 low NA HuCHuD_Pos NA
1 C 50 low NA HuCHuD_Pos 26.10
2 C 50 low NA HuCHuD_Pos 31.90
1 C 80 low NA HuCHuD_Pos 12.70
2 C 80 low NA HuCHuD_Pos 26.20
1 C 10 normal NA HuCHuD_Pos NA
2 C 10 normal NA HuCHuD_Pos 17.20
1 C 18 normal NA HuCHuD_Pos 3.96
2 C 18 normal NA HuCHuD_Pos NA
1 C 50 normal NA HuCHuD_Pos 25.60
2 C 50 normal NA HuCHuD_Pos 17.50
1 C 80 normal NA HuCHuD_Pos 19.00
NA C 80 normal NA HuCHuD_Pos NA
這是我的代碼:
matrix = as.data.frame(subset(data.long, Line == line_single & Marker == marker_single & Day != "30"))
pdf(paste(line_name_single, marker_name_single, ".pdf"), width=10, height=10)
plot <-
ggplot(data=matrix,aes(x=Day, y=Proportion, group=Treatment, fill=Treatment)) +
geom_boxplot(position=position_dodge(1))
print(plot)
dev.off()
我做錯了什么?
我想要的是
我得到的
非常感謝您的幫助!
干杯,寶拉
這是您問題的最小可重現示例的樣子:
matrix <- structure(list(Day = c(10L, 10L, 18L, 18L, 18L, 50L, 50L, 80L, 80L, 10L, 10L, 18L, 18L, 50L, 50L, 80L, 80L),
Treatment = c("low", "low", "low", "low", "low", "low", "low", "low", "low", "normal", "normal", "normal", "normal", "normal", "normal", "normal", "normal"),
Proportion = c(8.62, NA, 30.5, NA, NA, 26.1, 31.9, 12.7, 26.2, NA, 17.2, 3.96, NA, 25.6, 17.5, 19, NA)),
class = "data.frame", row.names = c(NA, -17L))
使用factor
“離散化”變量Day
建議答案:
ggplot(data=matrix,aes(x=factor(Day), y=Proportion, fill=Treatment)) +
geom_boxplot(position=position_dodge(1)) +
labs(x ="Day")
說明:如果我們將一個連續變量傳遞給箱線圖的 'x' 軸, ggplot2
不會將該軸轉換為離散變量。 因此,由於缺少“分組”變量,我們只能得到一個框。 但是如果我們將變量轉換為離散的東西,比如一個因子、一個字符串或一個日期,我們就會得到想要的行為。
此外,當您使用dput
或此處描述的技術之一時,查找和測試答案比嘗試使用問題中的數據描述要容易得多(或者至少我不知道如何加載那個示例數據)
PS 我認為命名類data.frame
'matrix' 的變量有點令人困惑,因為matrix
在 R 中是它自己的數據類型......;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.