1
我想創建一個ggplot密度的圖例,將一個組與所有組進行比較。使用此示例 - R: Custom Legend for Multiple Layer ggplot - 我可以使用下面的代碼成功完成此操作。如何通過在ggplot中映射來自不同數據幀的aes_string來生成ggplot中的圖例?
met1 <- data.frame(
Score = sample(1:10),
Group = sample(c("Group1", "Group2", "Group3"), 30, replace = TRUE))
ggplot()+geom_density(data=met1, aes(x=Score,fill='black'))+geom_density(data=met1[met1$Group=="Group1",],aes(x=Score,fill='red'))+ scale_fill_identity(name='Groups', guide='legend',labels=c('Group1', 'All Groups'))
但是,我需要使用aes_string來使用函數來調用ggplot來創建許多圖。當我嘗試使用下面的代碼時,它會產生一個錯誤 - eval中的錯誤(expr,envir,enclos):找不到對象'black'。
x_var <- "Score"
ggplot()+geom_density(data=met1, aes_string(x=x_var,fill='black'))+
geom_density(data=met1[met1$Group=="Group1",],aes(x=x_var,fill='red'))+
scale_fill_identity(name='Groups', guide='legend',labels=c('Group1', 'All Groups'))
謝謝 - 代碼生成一個陰謀,但沒有傳說。 – user4556428
非常好 - 這正是我需要的。 – user4556428