R 注释ggplot2中每个面上的组平均值
我想在ggplot2图形中为每个刻面组指定平均值。 我试过这个:R 注释ggplot2中每个面上的组平均值,r,ggplot2,R,Ggplot2,我想在ggplot2图形中为每个刻面组指定平均值。 我试过这个: library(ggplot2) p <- ggplot(mtcars, aes(mpg, wt)) + geom_point() p <- p + facet_grid(. ~ cyl) p <- p + annotate("text", label = mean(as.numeric(mtcars$mpg)), size = 4, x = 15, y = 5) p 按照另一个静止的例子,我在每个方面都实现了
library(ggplot2)
p <- ggplot(mtcars, aes(mpg, wt)) + geom_point()
p <- p + facet_grid(. ~ cyl)
p <- p + annotate("text", label = mean(as.numeric(mtcars$mpg)), size = 4, x = 15, y = 5)
p
按照另一个静止的例子,我在每个方面都实现了平均值,但现在我得到了额外的树空网格:
图书馆GGPLOT2
p <- ggplot(mtcars, aes(mpg, wt)) + geom_point()
p <- p + facet_grid(cols=vars(cyl))
ann_text <- data.frame(mpg = c(15, 15, 15),
wt = c(5,5,5),
lab = c(mean(as.numeric(mtcars$mpg[mtcars$cyl==4])),
mean(as.numeric(mtcars$mpg[mtcars$cyl==6])),
mean(as.numeric(mtcars$mpg[mtcars$cyl==8]))),
cyl = c("4","6","8"))
p <- p + geom_text(data=ann_text, label=ann_text$lab)
p
一种可行的方法是使用原始df中的标签创建一个新的col:
mtcars0=mtcars%>%group_by(cyl)%>%mutate(MeanMpg=round(mean(mpg),2))
p <- ggplot(mtcars0, aes(mpg, wt)) + geom_point() + facet_grid(. ~ cyl) +
geom_text(aes(mpg,wt,label=MeanMpg), size = 4, x = 15, y = 5)
p
如果要使用annotate,可以单独定义标签:
labels<-mtcars%>%group_by(cyl)%>%summarize(MeanMpg=round(mean(mpg),2))%>%.$MeanMpg
p <- ggplot(mtcars0, aes(mpg, wt)) + geom_point() + facet_grid(. ~ cyl) +
annotate("text", label = labels, size = 4, x = 15, y = 5)
p
在每个方面注释不同值的方法是,首先为每个方面变量创建一个具有平均值的数据帧,然后注释数据帧中的值。参见示例。在该示例中,我不明白这如何适用于我的案例。他们只将一个文本放在一个FacesScroll-down中-第一个答案仅用文本注释一个方面,但下面的一个答案显示了如何用不同的文本值注释每个方面。