我有五個線圖,我想從中輸出一個陰影區域,代表它們繪製的上部和下部區域之間的區域。我創建了一個R腳本(見下文),因爲我有多個數據集,需要重複這個練習。R ggplot2:使用嵌套循環在單個圖中覆蓋多個geom_ribbon對象
但是,我只能打印來自最後一個i和j對的geom_ribbon - 我似乎無法將每個geom_ribbon輸出到創建的列表中。
我很感激任何有關如何將所有geom_ribbon對象導入列表的想法。 print(Z)
(下面的例子)只打印一張圖。如果可能的話,我想要將所有geom_ribbon對象重疊並打印爲單個ggplot?
Z <- list()
allmaxi <- list(cahp_max_plot15cb$decade_maxa, cahp_max_plot15cb$decade_maxc,cahp_max_plot15cb$decade_maxd, cahp_max_plot15cb$decade_maxe, cahp_max_plot15cb$decade_maxf)
allmaxj <- list(cahp_max_plot15cb$decade_maxa, cahp_max_plot15cb$decade_maxc,cahp_max_plot15cb$decade_maxd, cahp_max_plot15cb$decade_maxe, cahp_max_plot15cb$decade_maxf)
for (i in allmaxi) {
for (j in allmaxj) {
l <- geom_ribbon(data=cahp_max_plot15cb,aes(x=decade,ymin=i, ymax=j))
Z[[length(Z) + 1]] <- l
print(i)
print(j)
}
}
print(ggplot() + Z)
樣本輸出(從打印(i)和印刷(j)在腳本)輸入來自一個數據集(decade_maxa)至i列出,以及四個其他數據集到j列表:
[1] 2010.811 1723.783 1961.088 1662.909 1587.191 1662.140 1665.415 1602.974 1807.453 1586.106
[11] 1580.880 1685.253 1653.178 1824.842
[1] 1390.260 1247.700 1263.578 1711.638 1228.326 1762.045 1260.147 1171.914 1697.987 1350.867
[11] 1434.525 1488.818 1610.513 1536.895
`
`[1] 2010.811 1723.783 1961.088 1662.909 1587.191 1662.140 1665.415 1602.974 1807.453 1586.106
[11] 1580.880 1685.253 1653.178 1824.842
`
`[1] 1120.2700 1094.3047 1196.8792 1227.9660 1236.9170 1266.0935 1127.1480 974.6948 947.3365
[10] 1244.3242 1254.2704 1082.3667 1286.9080 1126.1943
`
`[1] 2010.811 1723.783 1961.088 1662.909 1587.191 1662.140 1665.415 1602.974 1807.453 1586.106
[11] 1580.880 1685.253 1653.178 1824.842
`
`[1] 1396.695 1425.073 1382.941 1913.495 1401.754 1499.763 1600.656 1367.043 1413.390 1343.804
[11] 1431.790 1402.292 1329.192 1696.729
`
`[1] 2010.811 1723.783 1961.088 1662.909 1587.191 1662.140 1665.415 1602.974 1807.453 1586.106
[11] 1580.880 1685.253 1653.178 1824.842
`
`[1] 1718.874 1389.134 1501.574 1233.189 1262.480 1508.919 1291.467 1431.869 1505.102 1376.519
[11] 1441.181 1421.552 1326.547 1635.599
`
> print(ggplot() + Z)
`
這是我的目標。也許樂隊有更好的方法嗎?
這是通過整合中值的輸出圖像,如下建議:
median_g <- group_by(cahp_max_plot15cbm,decade) median_gm <- mutate(median_g, median=median(value)) p2 <- ggplot(median_gm) + geom_ribbon(aes(x=decade, ymin=median,ymax=value,group=variable),alpha=0.40,fill="#3985ff") + geom_line(aes(x=decade,y=value,group=variable,color=variable),lwd=1) + geom_point(aes(x=decade,y=median)) p2
它出現在變量名(僅i和j)不被傳遞到列表:>ž [[1]] 映射:X =十年中,YMIN = I,YMAX = j geom_ribbon:na。RM = FALSE stat_identity: position_identity:(寬度= NULL,高度= NULL) [[2]] 映射:X =十年中,YMIN = I,YMAX = j的 geom_ribbon:na.rm = FALSE stat_identity: position_identity:(寬度= NULL,高度= NULL) [[3]] 映射:X =十年中,YMIN = I,YMAX = j的 geom_ribbon:na.rm = FALSE stat_identity: position_identity:(寬度= NULL,height = NULL) ... – 2015-08-28 07:39:47
爲什麼你需要這個循環?更好的方法可能是重塑你的數據。更易讀,更簡單的繪圖定製。 – Heroka