ggplot2:使用facet_wrap的每个图形的不同vlines

时间:2016-12-27 20:34:27

标签: r plot ggplot2 facet-wrap

我在R工作,我使用facet_wrap()时遇到了问题。我试图为每个图形生成方面放置3个vlines,但我不能。

每个vline代表平均值,中位数和第75百分位数,我将它们保存在一个简单的向量中,如下所示:

> est_desc
[[1]]
    lineas Medidas
1 33.17766      mu
2 29.30588       M
3 49.35564     p75

[[2]]
    lineas Medidas
1 33.56430      mu
2 29.42229       M
3 49.85667     p75

[[3]]
    lineas Medidas
1 33.33129      mu
2 29.20151       M
3 49.95113     p75

[[4]]
    lineas Medidas
1 33.44949      mu
2 28.72931       M
3 51.25811     p75

主要数据框“datos_regiones”存储我的信息:

> head(datos_regiones, n=3)
 cod_reg codine_origen codine_destino distancia_arcgis distancia_osm delta_distancia
1       1           183           4802         79.66972     104.74102       25.071304
2       1          2319           4862         86.09579      95.09367        8.997872
3       1           354           1848        107.22779     116.74396        9.516173

注意: datos_regiones有100000行,cod_reg的值为1到15.

我的实际情节代码是:

    for(i in 1:4){
  # Fill previous list
  est_desc[[i]] <- data.frame(lineas = c(mean(datos_regiones[datos_regiones$cod_reg==i,]$delta_distancia), 
                                         median(datos_regiones[datos_regiones$cod_reg==i,]$delta_distancia),
                                         quantile(datos_regiones[datos_regiones$cod_reg==i,]$delta_distancia, c(0.75))),
                              Medidas = c("mu", "M", "p75"))
  # Save graph in variable 
  grafico <- ggplot(datos_regiones, aes(x = delta_distancia, y =..density..), fill=group) + 
             geom_density(alpha=.2, fill="#FF6666")+
             geom_vline(data = est_desc[[i]], aes(xintercept=lineas,   # Líneas: mu, M y p75
              colour=Medidas, linetype=Medidas), size=1, show.legend=TRUE)+
             facet_wrap(~ cod_reg)
  # Print all graphs
  print(grafico)
}

我的问题出在generated graphs。每个图表都有相同的3个vlines,与i=4的值相关:我无法找到修复此问题的方法。我尝试使用/ out循环,而我没有更多的事情要做;我唯一需要的是将est_desc的每个元素的3行放在不同的图中。

我尝试了这个whit grid.arrange,但是这个方法为情节制作了一个“表格传说”,我只需要一个,就像facets一样:很容易。

抱歉我的英语,我说西班牙语,谢谢你的时间。任何答案我都会学到别的东西:)

0 个答案:

没有答案