set.seed(1) # generate random data
day1 = rnorm(20,0,1)
day2 = rnorm(20,5,1)
Subject <- rep(paste0('S',seq(1:20)), 2)
Data <- data.frame(Value = matrix(c(day1,day2),ncol=1))
Day <- rep(c('Day 1', 'Day 2'), each = length(day1))
df <- cbind(Subject, Data, Day)
使用此隨機資料,我想為每個主題繪制具有獨特顏色的單個點和一個匯總點(平均值 標準偏差)。
當所有點都用相同的顏色繪制時,該圖似乎沒問題,因為stat_summary(fun.data = mean_sdl)作業正常。
ggplot(data = df, mapping = aes(x= Day, y =Value))
stat_summary(fun.data = mean_sdl, fun.args = list(mult = 2),
geom = 'pointrange', fatten = 3*1.2, size = 1.2,
color= 'black')
geom_point(size = 2)
但不是當所有點都具有獨特的顏色時(對于每個主題)。
ggplot(data = df, mapping = aes(x = Day, y = Value,
fill = Subject))
stat_summary(fun.data = mean_sdl, fun.args = list(mult = 2),
geom = 'pointrange', fatten = 3*1.2, size = 1.2,
color = 'black')
geom_point(shape = 21, color = 'white', size = 2)

uj5u.com熱心網友回復:
在您的示例 ggplot 假設每種顏色對應于一個單獨的組,但您希望分組和顏色分開。因此,您需要將組明確定義為“Day”。
ggplot(data = df, mapping = aes(x = Day, y = Value,
fill = Subject, group = Day))
stat_summary(fun.data = mean_sdl, fun.args = list(mult = 2),
geom = 'pointrange', fatten = 3*1.2, size = 1.2,
color = 'black')
geom_point(shape = 21, color = 'white', size = 2)

uj5u.com熱心網友回復:
請嘗試以下操作:
ggplot(data = df, mapping = aes(x= Day, y =Value))
stat_summary(fun.data = mean_sdl, fun.args = list(mult = 2),
geom = 'pointrange', fatten = 3*1.2, size = 1.2,
color= 'black')
geom_point(size = 2, aes(color = Subject))
我沒有在第一行 ( )中指定fillin aes(),而是ggplot(...)將它移到了geom_point()元素中。否則,stat_summary()將使用Subject!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/347567.html
