Je travaille avec les deux mesures de l'humidité du sol observés et modélisés à plusieurs sites:tracer plusieurs lignes et barres d'erreur
DF <- structure(list(site = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L), .Label = c("CA-Oas", "CA-Ojp", "CA-Qfo",
"US-Ho1", "US-UMB"), class = "factor"), month = c(1L, 2L, 3L,
4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L,
7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L,
10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L,
12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L), satellite = c(NA,
NA, NA, 0.246855412760089, 0.239430871664309, 0.247785585430952,
0.254201344766859, 0.228525727473456, 0.220153005451572, 0.248914102315903,
0.226286688271691, NA, NA, NA, NA, 0.289740440845489, 0.377737456677007,
0.349513851965849, 0.369372068320291, 0.33528384697019, 0.316710417976185,
0.353778275847435, 0.366419460285794, NA, NA, NA, NA, NA, 0.523234443318459,
0.541902482509613, 0.541902482509613, 0.541902482509613, 0.541902482509613,
0.541902482509613, 0.541902482509613, NA, NA, NA, 0.490694537758827,
0.592309034864108, 0.636846342572459, 0.645659983158112, 0.642242492328991,
0.644422933720706, 0.634390437856634, 0.604341197472352, 0.601287194034632,
0.586221873760223, NA, 0.624189734458923, 0.624189734458923,
0.624189734458923, 0.624189734458923, 0.624189734458923, 0.624189734458923,
0.624189734458923, 0.624189734458923, 0.624189734458923, 0.624189734458923,
0.624189734458923), satellite.low = c(NA, NA, NA, 0.208491480949955,
0.208809739158129, 0.190487245023279, 0.206581580485592, 0.190563366897309,
0.180458581035219, 0.229389992708553, 0.200156716900049, NA,
NA, NA, NA, 0.197556973794879, 0.303169270710883, 0.255839831380852,
0.308712828188052, 0.272073699535891, 0.262898007889838, 0.279825783579647,
0.257326671080677, NA, NA, NA, NA, NA, 0.477209513195344, 0.541902482509613,
0.541902482509613, 0.541902482509613, 0.541902482509613, 0.541902482509613,
0.541902482509613, NA, NA, NA, 0.364323639893309, 0.534208357528997,
0.611485343460275, 0.643659507474862, 0.627827219126354, 0.637549292123253,
0.608606893522788, 0.5526295760826, 0.539322500377704, 0.519807807424512,
NA, NA, 0.624189734458923, 0.624189734458923, 0.624189734458923,
0.624189734458923, 0.624189734458923, 0.624189734458923, 0.624189734458923,
0.624189734458923, 0.624189734458923, 0.624189734458923), satellite.high = c(NA,
NA, NA, 0.285219344570222, 0.270052004170489, 0.305083925838626,
0.301821109048126, 0.266488088049604, 0.259847429867925, 0.268438211923252,
0.252416659643333, NA, NA, NA, NA, 0.3819239078961, 0.45230564264313,
0.443187872550847, 0.430031308452529, 0.398493994404489, 0.370522828062531,
0.427730768115223, 0.47551224949091, NA, NA, NA, NA, NA, 0.569259373441575,
0.541902482509613, 0.541902482509613, 0.541902482509613, 0.541902482509613,
0.541902482509613, 0.541902482509613, NA, NA, NA, 0.617065435624345,
0.650409712199219, 0.662207341684644, 0.647660458841361, 0.656657765531627,
0.651296575318159, 0.660173982190479, 0.656052818862104, 0.663251887691561,
0.652635940095934, NA, NA, 0.624189734458923, 0.624189734458923,
0.624189734458923, 0.624189734458923, 0.624189734458923, 0.624189734458923,
0.624189734458923, 0.624189734458923, 0.624189734458923, 0.624189734458923
), observed = c(0.140086734851409, 0.137745990685859, 0.146660019201229,
0.275950971628449, 0.298260250896057, 0.26870029739777, 0.227566661823465,
0.197824137311287, 0.195409734063355, 0.229745648248465, 0.226546607074933,
0.158508782420749, 0.0809095246636771, 0.0804010923965351, 0.0845644708882278,
0.136702248824284, 0.121883242349049, 0.108167424836601, 0.0970784232538687,
0.0860934461299105, 0.0910916878172589, 0.10747642248062, 0.102700195758564,
0.0811833903700756, 0.115733715437788, 0.0631616319005478, 0.0631265153446416,
0.171535848109378, 0.18694684173028, 0.142807562821677, 0.145926108701425,
0.154393702185792, 0.171436382382201, 0.188897212829005, 0.186402403754978,
0.165098945598251, 0.0713685071127924, 0.0436531172429078, 0.0624862109235555,
0.127141665482761, 0.134542260869565, 0.124414092512545, 0.100807230998223,
0.0765214392215714, 0.0798724029741452, 0.103098854664915, 0.116568256944444,
0.1105108739241, 0.108650005144474, 0.0976296689160692, 0.105006219572287,
0.122777662914972, 0.102765292125318, 0.0851933017211099, 0.0566760862577016,
0.056282148272957, 0.0718264626865672, 0.0909327257326783, 0.10461694624978,
0.103895834299474), observed.low = c(0.123032811442984, 0.126127332034484,
0.118118534835286, 0.198817004012519, 0.254140718534211, 0.208009439993492,
0.164189152182023, 0.138753714747272, 0.124966620815314, 0.161415523471958,
0.159972232752574, 0.121607685043651, 0.0591772062927612, 0.05892126834644,
0.0577332139485083, 0.0979872715014624, 0.0939120895219702, 0.0785008888345453,
0.0635909823809719, 0.0516671874880994, 0.0513847048326183, 0.0716629121839855,
0.0686069735468453, 0.0605781104970885, 0.0725611238034912, 0.0287878644886994,
0.0312612891352408, 0.117719361193379, 0.158601178554096, 0.103448327552773,
0.108434377599704, 0.123534447310382, 0.150300870070247, 0.171762349088762,
0.173223674947214, 0.143153513926194, 0.0176750483828094, -0.00825194618307156,
0.00841588326444485, 0.0851767193470053, 0.114292404939469, 0.104180435677072,
0.0730616681527658, 0.03446185464827, 0.0417092732525248, 0.0672335656317878,
0.091673056919691, 0.0718925232829272, 0.0765541880959607, 0.0759211571229279,
0.0803948566686958, 0.0858717319021568, 0.0760499923996711, 0.0506548126690479,
0.0369099617804679, 0.0337436690922423, 0.0466183548891693, 0.0663011553037621,
0.0900575679369071, 0.0899421880715561), observed.high = c(0.157140658259833,
0.149364649337235, 0.175201503567172, 0.353084939244379, 0.342379783257904,
0.329391154802047, 0.290944171464907, 0.256894559875301, 0.265852847311397,
0.298075773024972, 0.293120981397293, 0.195409879797847, 0.102641843034593,
0.10188091644663, 0.111395727827947, 0.175417226147105, 0.149854395176127,
0.137833960838657, 0.130565864126765, 0.120519704771722, 0.130798670801899,
0.143289932777255, 0.136793417970284, 0.101788670243063, 0.158906307072085,
0.0975353993123963, 0.0949917415540424, 0.225352335025378, 0.215292504906464,
0.182166798090582, 0.183417839803146, 0.185252957061203, 0.192571894694156,
0.206032076569248, 0.199581132562743, 0.187044377270308, 0.125061965842775,
0.0955581806688872, 0.116556538582666, 0.169106611618516, 0.154792116799661,
0.144647749348019, 0.128552793843681, 0.118581023794873, 0.118035532695766,
0.138964143698041, 0.141463456969198, 0.149129224565273, 0.140745822192987,
0.11933818070921, 0.129617582475879, 0.159683593927787, 0.129480591850964,
0.119731790773172, 0.0764422107349353, 0.0788206274536718, 0.097034570483965,
0.115564296161594, 0.119176324562654, 0.117849480527392)), .Names = c("site",
"month", "modeled", "modeled.low", "modeled.high", "observed",
"observed.low", "observed.high"), row.names = c(NA, -60L), class = "data.frame")
Ce que je dois faire est de créer des tracés de la ligne des deux « modelée » et « observé » l'humidité du sol contre les mois, et d'ajouter des barres d'erreur correspondantes modeled.low
et modeled.high
et observed.low
et observed.high
à ces lignes.
De plus, j'ai besoin de créer des facettes basées sur la colonne site
.
Ma première approche serait de fondre que la trame de données et à partir de là, mais les barres d'erreur pourrait compliquer cette approche:
library(reshape2)
library(ggplot2)
DF.m <- melt(DF, id=c('site','month'))
ggplot(data=DF.m) +
geom_line(aes(x=month, y=value, colour=variable, group=variable)) +
facet_wrap(~site) +
theme_bw(base_size = 18) +
scale_x_discrete(limits=month.abb) +
ylab('Soil water content (%)') + xlab('')
Ce qui ne fonctionne évidemment pas parce que modeled.low
et modeled.high
et observed.low
et observed.high
sont interprétées comme lignes à tracer, alors que j'ai besoin d'eux comme des barres d'erreur.
Je sais que je devrais utiliser geom_errorbar()
dans ce code afin de réaliser ce dont j'ai besoin, mais je ne suis pas sûr de savoir comment l'utiliser avec la trame de données en fusion.
Des conseils?
Votre réponse fonctionne mieux pour moi parce que j'utilisais déjà 'data.table' sur mon flux de travail, merci! – thiagoveloso