r - 在每个面的密度图的中心平均值上画一条线

标签 r ggplot2 facet-wrap

目标:我想为每个单独的方面画一条线。

我目前已经为所有方面的平均值绘制了一条线:

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 的平均值功能。

enter image description here

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")

enter image description here

关于r - 在每个面的密度图的中心平均值上画一条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49541295/

相关文章:

r - 使用 facet_grid 时,我可以为 x 和 y 以外的美学设置自由比例(例如尺寸)吗?

线性回归模型的 R 预测

删除由 ggarrange 排列的透明 ggplot 图之间的网格

r - ggplot2 条形图,条内有线条

r - 绘制函数数据

r - facet_grid 中的多行

r - 修改部分可伸缩单元格的格式

R:使用 file.choose 时 setwd 延迟

r - 在 R 中创建 data.frame 列组合的索引

R ggplot-将所有数据点添加到所有构面