目标:我想为每个单独的方面画一条线。
我目前已经为所有方面的平均值绘制了一条线:
ggplot(mexi_sf, aes(FOODEXP)) +
geom_density(alpha = 0.1,fill="red",colour="red") +
facet_wrap(~ADM1NAME)+xlim(0, 436)+ geom_vline(xintercept=227)+
ggsave("myplot.png")
注意:我知道 227 是来自
summary
的平均值功能。Here's the data可以导入:
mexi_sf<-read_sf( dsn = getwd()
, layer = "MexicoCaseStudy"
, stringsAsFactors = FALSE )
最佳答案
您可以通过按管理对数据进行分组来做到这一点。请注意,您的缺失值编码为 -9999
在您的数据中。先重新编码,然后使用 na.rm
在计算每组的平均值时。
mexi_sf %>%
select(ADM1NAME, FOODEXP) %>%
mutate(FOODEXP = ifelse(FOODEXP == -9999, NA, FOODEXP)) %>%
group_by(ADM1NAME) %>%
mutate(MEANEXP = mean(FOODEXP, na.rm = T)) -> mexi_sf
ggplot(mexi_sf, aes(FOODEXP)) +
geom_density(alpha = 0.1,fill="red",colour="red") +
facet_wrap(~ADM1NAME) + xlim(0, 436) + geom_vline(aes(xintercept=MEANEXP))+
ggsave("myplot.png")
关于r - 在每个面的密度图的中心平均值上画一条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49541295/