我有一個data.frame帶有兩個factor變數(下面)type和一個數字變數(下面)的變數:agedfvaluedf
set.seed(1)
df <- data.frame(type = c(rep("t1", 8), rep("t2", 8), rep("t3", 8), rep("t4", 8), rep("t5", 8), rep("t6", 8)),
age = rep(c(rep("y", 4),rep("o", 4)), 6),
value = rep(c(runif(4, 5, 10), runif(4, 7.5, 12.5)), 6),
stringsAsFactors = F)
df$type <- factor(df$type, levels = c("t1", "t2", "t3", "t4", "t5", "t6"), ordered = T)
df$age <- factor(df$age, levels = c("y", "o"), ordered = T)
我想使用R'sggplot2繪制df$value抖動點,按 分組和顏色編碼df$type,但df$type在df$age. 另外,我想顯示每組df$type和的中線df$age。
到目前為止,我只能得到沒有中線的點:
library(ggplot2)
ggplot(df, aes(x = age, y = value, color = type))
geom_jitter(width = 0.3)
facet_wrap(~type,nrow = 1) theme_minimal()

知道如何添加中線嗎?
uj5u.com熱心網友回復:
您的示例資料對于所有型別都是相同的,所以我對其進行了一些更改:
set.seed(1)
df <- data.frame(type = c(rep("t1", 8), rep("t2", 8), rep("t3", 8), rep("t4", 8), rep("t5", 8), rep("t6", 8)),
age = rep(c(rep("y", 4),rep("o", 4)), 6),
value = runif(48, 5, 10),
stringsAsFactors = F)
df$type <- factor(df$type, levels = c("t1", "t2", "t3", "t4", "t5", "t6"), ordered = T)
df$age <- factor(df$age, levels = c("y", "o"), ordered = T)
您可以stat_summary為此使用:
ggplot(df)
geom_jitter(aes(x = age,
y = value,
color = type,
group = age),
width = 0.2)
stat_summary(aes(x = age,
y = value,
color = type,
group = interaction(age, type)),
fun = median,
geom = "crossbar")
scale_color_brewer(palette = "Dark2")
facet_wrap(~type,nrow = 1)
theme_bw()

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/482750.html
下一篇:如何將點值寫入R中的線圖?
