[英]ggplot2 geom_errorbar in reshaped data
在附加的data.frame中,我想在2个距离处测量设备灵敏度,测量t日期,由监视器修改。 这在ggplot2
非常简单。 首先使用reshape2
包reshape2
数据
data.melt <- melt(big_df[,c(1:3,6)],id=c("Date","Monitor"))
然后使用ggplot2
ggplot(data.melt, aes(x=Date, y=value, col=variable)) + geom_point() + facet_wrap(~Monitor)
我还想将geom_errorbar添加到这些点。 我遇到的问题是50cm和100cm测量的误差条不同,我不确定如何定义限制。 即如果variable = Sensitivity.100cm
将限值设置为value+/-Error.100cm
并且对于variable = Sensitivity.50cm
limits = value+/-Error.50cm
。 我怎样才能最好地完成这项任务?
structure(list(Date = c("18/10/2012", "19/10/2012", "22/10/2012",
"23/10/2012", "23/10/2012", "26/10/2012", "29/10/2012", "31/10/2012",
"11/01/2012", "11/02/2012", "11/06/2012", "11/08/2012", "11/09/2012",
"20/11/2012", "27/11/2012", "18/12/2012", "14/01/2012", "23/01/2013",
"18/01/2013", "16/02/2013", "23/04/2013", "30/04/2013", "07/05/2013",
"14/05/2013", "21/05/2013", "17/10/2012", "18/10/2012", "19/10/2012",
"22/10/2012", "23/10/2012", "24/10/2012", "26/10/2012", "29/10/2012",
"31/10/2012", "11/01/2012", "11/02/2012", "11/06/2012", "11/08/2012",
"11/09/2012", "20/11/2012", "27/11/2012", "18/12/2012", "14/01/2013",
"23/01/2013", "18/02/2013", "16/02/2013", "14/04/2013", "30/04/2013",
"07/05/2013", "14/05/2013", "21/05/2013", "16/10/2012", "18/10/2012",
"19/10/2012", "22/10/2012", "23/10/2012", "24/10/2012", "26/10/2012",
"29/10/2012", "31/10/2012", "31/10/2012", "01/11/2012", "02/11/2012",
"06/11/2012", "08/11/2012", "09/11/2012", "20/11/2012", "27/11/2012",
"18/12/2012", "14/01/2013", "23/01/2013", "18/02/2013", "16/04/2013",
"23/04/2013", "30/04/2013", "07/05/2013", "14/05/2013", "21/05/2013",
"16/04/2013", "23/04/2013", "30/04/2013", "07/05/2013", "14/05/2013",
"21/05/2013", "16/04/2013", "23/04/2013", "30/04/2013", "07/05/2013",
"14/05/2013", "21/05/2013"), Sensitivity.100cm = c(23.9310344827586,
23.6792452830189, 23.0708661417323, 23.75, 31.3333333333333,
25.1351351351351, 25.9770114942529, 24.5192307692308, 25.4347826086957,
22.987012987013, 23.1451612903226, 22.4822695035461, 23.4375,
23.9495798319328, 23.5245901639344, 24.041095890411, 25.4198473282443,
23.9097744360902, 25.8536585365854, 26.1940298507463, 28.0794701986755,
26.4041095890411, 24.3875968992248, 24.7019867549669, 26.4383561643836,
21.2328767123288, 23.5172413793103, 24.0566037735849, 30.7874015748032,
23.1111111111111, 29.5, 23.0405405405405, 26.2068965517241, 25,
24.3478260869565, 23.5064935064935, 22.0161290322581, 23.468085106383,
22.8125, 25.3781512605042, 22.2131147540984, 24.7945205479452,
23.6923076923077, 24.1353383458647, 25.2439024390244, 26.9402985074627,
27.9470198675497, 23.8835616438356, 25.3798449612403, 25.0331125827815,
25.7534246575342, 31.1627906976744, 30.6896551724138, 28.7735849056604,
29.7637795275591, 28.5294117647059, 40, 29.7972972972973, 33.448275862069,
33.4653465346535, 33.4653465346535, 36.9565217391304, 31.4285714285714,
30.8870967741935, 28.5106382978723, 29.0625, 29.4117647058824,
31.3934426229508, 33.5616438356164, 29.0151515151515, 30.8270676691729,
29.6341463414634, 34.3283582089552, 32.7152317880795, 37.2602739726027,
38.2945736434108, 35.8940397350993, 33.5616438356164, 40.5223880597015,
36.0264900662252, 33.8356164383562, 34.4186046511628, 36.158940397351,
33.7671232876712, 36.7910447761194, 36.0264900662252, 33.8356164383562,
30.5426356589147, 36.158940397351, 33.7671232876712), Sensitivity.50cm = c(89.448275862069,
89.4339622641509, 88.0314960629921, 88.4558823529412, 94.6666666666667,
85.9459459459459, 92.2988505747126, 93.6538461538461, 91.5217391304348,
88.2467532467532, 98.1451612903226, 85.6028368794326, 88.28125,
90, 85.655737704918, 87.7397260273973, 88.7786259541985, 90.8270676691729,
92.1341463414634, 89.6268656716418, 96.6887417218543, 91.1986301369863,
89.7364341085271, 87.0198675496689, 90.4794520547945, 80.8219178082192,
83.8620689655172, 85.188679245283, 82.992125984252, 88.1481481481482,
93.3333333333333, 87.9054054054054, 90.6896551724138, 89.3269230769231,
89.1304347826087, 90.1298701298701, 82.9032258064516, 82.6879432624114,
87.265625, 88.8235294117647, 87.7868852459016, 90.5479452054795,
91.7692307692308, 83.5338345864662, 92.0121951219512, 94.1044776119403,
88.0132450331126, 90.8013698630137, 89.7984496124031, 87.6158940397351,
88.2191780821918, 116.434108527132, 110, 116.509433962264, 112.44094488189,
110.147058823529, 123.333333333333, 107.5, 119.655172413793,
127.524752475248, 127.524752475248, 118.478260869565, 96.3636363636364,
112.338709677419, 105.815602836879, 116.5625, 116.806722689076,
118.27868852459, 129.452054794521, 113.106060606061, 115.789473684211,
115, 133.582089552239, 132.05298013245, 136.575342465753, 154.573643410853,
118.675496688742, 122.602739726027, 133.805970149254, 132.05298013245,
136.575342465753, 154.573643410853, 132.185430463576, 136.506849315069,
133.805970149254, 132.05298013245, 136.575342465753, 154.573643410853,
132.185430463576, 136.506849315069), Error.100cm = c(1.3139695781557,
1.56444565582802, 1.40192864683188, 1.36970117722038, 1.67497927018681,
1.33092672997245, 1.78068199825628, 1.60608587389328, 1.71862916313499,
1.29219147676184, 1.40378186980074, 1.29420479368047, 1.39754248593737,
1.46276430130498, 1.42679468733846, 1.31571045974648, 1.42197984810665,
1.39046932397796, 1.30208271366236, 1.4335352770372, 1.39230437361779,
1.37754694254238, 1.41544528946403, 1.3095178763765, 1.37669529056451,
1.81215843223602, 1.30671002217217, 1.60377358490566, 1.7304929902233,
1.34969386357693, 1.63724022536571, 1.28022265685787, 1.79545969561073,
1.60896158948861, 1.69788036432753, 1.30840530387077, 1.36621567307237,
1.32512183966048, 1.37108818553002, 1.49853399160731, 1.39344262295082,
1.33165904761805, 1.38033526499434, 1.40462719490747, 1.28772634645993,
1.45283002492028, 1.38599003552691, 1.31267619160706, 1.44319351564034,
1.32118790352715, 1.35955022200543, 1.5848874651365, 1.47108475915183,
1.72669860544558, 1.61753059717907, 1.49248405369003, 1.86338998124982,
1.44758684362355, 2.02050526795942, 1.88379184063767, 1.88379184063767,
2.06235499576199, 1.47504112877929, 1.60684345525575, 1.45000342555042,
1.53888403153064, 1.61641882871188, 1.63318515124355, 1.54679312200496,
1.50945900342207, 1.55913092882163, 1.38241268887252, 1.63499270897065,
1.48969826214596, 1.61504467432214, 1.74375533010884, 1.56437242530036,
1.54679312200496, 1.76125727182178, 1.56156637384789, 1.54071532591808,
1.65536096930718, 1.55875527098541, 1.54223702043804, 1.68034779838772,
1.56156637384789, 1.54071532591808, 1.56197222322557, 1.55875527098541,
1.54223702043804), Error.50cm = c(2.49898909406806, 2.94121835247545,
2.66090476357729, 2.57562939531426, 2.84312035153866, 2.42491330336843,
3.28542665010493, 3.03760942287141, 3.183873590408, 2.43051523015752,
2.83178223646443, 2.48024233333982, 2.64934764965831, 2.77310924369748,
2.66991761883645, 2.46860565629316, 2.61888806082572, 2.63908703380214,
2.39518528553687, 2.6055358582233, 2.54601096513127, 2.51706504452232,
2.65881302492679, 2.41699173389333, 2.50632526897698, 3.38331206444616,
2.42264387175866, 2.88777884245547, 2.66556076847414, 2.57667068606312,
2.82842712474619, 2.45392159423444, 3.26120941588761, 2.96210034629795,
3.15029929264988, 2.45725817252266, 2.60322780509177, 2.44047901652299,
2.62969260620419, 2.75266207632928, 2.70491803278689, 2.50538919974957,
2.67245427169849, 2.53752436551672, 2.39363249102323, 2.66888876749965,
2.42875772462149, 2.51128061073898, 2.6601687552902, 2.42695128500777,
2.47524808213598, 3.02027282771754, 2.76292767227726, 3.35536212146769,
3.02099623515762, 2.86858958869576, 3.22748612183951, 2.71029339461238,
3.74049197592482, 3.5862911438168, 3.5862911438168, 3.62137635846906,
2.52830160180932, 3.02499989250178, 2.75411175020533, 3.03382622483556,
3.15545938748212, 3.12874339081841, 2.99339361416605, 2.94091650663359,
2.96968686588444, 2.66763937246675, 3.1749324456989, 2.96611863265678,
3.06769803788475, 3.47196832194708, 2.81593266562507, 2.91397909399762,
3.17230019504959, 2.96611863265678, 3.06769803788475, 3.47196832194708,
2.96463964047674, 3.06846257323317, 3.17230019504959, 2.96611863265678,
3.06769803788475, 3.47196832194708, 2.96463964047674, 3.06846257323317
), Monitor = c("Berthold Red", "Berthold Red", "Berthold Red",
"Berthold Red", "Berthold Red", "Berthold Red", "Berthold Red",
"Berthold Red", "Berthold Red", "Berthold Red", "Berthold Red",
"Berthold Red", "Berthold Red", "Berthold Red", "Berthold Red",
"Berthold Red", "Berthold Red", "Berthold Red", "Berthold Red",
"Berthold Red", "Berthold Red", "Berthold Red", "Berthold Red",
"Berthold Red", "Berthold Red", "Berthold Blue", "Berthold Blue",
"Berthold Blue", "Berthold Blue", "Berthold Blue", "Berthold Blue",
"Berthold Blue", "Berthold Blue", "Berthold Blue", "Berthold Blue",
"Berthold Blue", "Berthold Blue", "Berthold Blue", "Berthold Blue",
"Berthold Blue", "Berthold Blue", "Berthold Blue", "Berthold Blue",
"Berthold Blue", "Berthold Blue", "Berthold Blue", "Berthold Blue",
"Berthold Blue", "Berthold Blue", "Berthold Blue", "Berthold Blue",
"NC 61", "NC 61", "NC 61", "NC 61", "NC 61", "NC 61", "NC 61",
"NC 61", "NC 61", "NC 61", "NC 61", "NC 61", "NC 61", "NC 61",
"NC 61", "NC 61", "NC 61", "NC 61", "NC 61", "NC 61", "NC 61",
"NC 61", "NC 61", "NC 61", "NC 61", "NC 61", "NC 61", "Mini Red",
"Mini Red", "Mini Red", "Mini Red", "Mini Red", "Mini Red", "Mini Blue",
"Mini Blue", "Mini Blue", "Mini Blue", "Mini Blue", "Mini Blue"
)), .Names = c("Date", "Sensitivity.100cm", "Sensitivity.50cm",
"Error.100cm", "Error.50cm", "Monitor"), class = "data.frame", row.names = c(NA,
90L))
library(reshape2)
data.melt <- melt(big_df[,c(1:3,6)],id=c("Date","Monitor"))
data.melt2 <- melt(big_df[,c(1,4:6)],id=c("Date","Monitor"))
levels(data.melt2$variable) <- levels(data.melt$variable)
data.melt <- merge(data.melt,data.melt2,by=c("Date","Monitor","variable"))
library(ggplot2)
ggplot(data.melt, aes(x=Date, y=value.x, col=variable)) +
geom_point() +
geom_errorbar(aes(ymin=value.x-value.y,ymax=value.x+value.y)) +
facet_wrap(~Monitor)
一种解决方案是制作两个熔化的数据帧 - 一个用于其他错误值。 在第二个melt()
函数中,将value.name=
更改为value2
以具有不同的名称。
data.melt1 <- melt(big_df[,c(1:3,6)],id=c("Date","Monitor"))
data.melt2 <- melt(big_df[,c(1,4,5,6)],id=c("Date","Monitor"),value.name="value2")
现在将第一个数据帧与第二个数据帧的value2
列放在一起。
data.tog<-cbind(data.melt1,data.melt2["value2"])
head(data.tog)
Date Monitor variable value value2
1 18/10/2012 Berthold Red Sensitivity.100cm 23.93103 1.313970
2 19/10/2012 Berthold Red Sensitivity.100cm 23.67925 1.564446
3 22/10/2012 Berthold Red Sensitivity.100cm 23.07087 1.401929
4 23/10/2012 Berthold Red Sensitivity.100cm 23.75000 1.369701
5 23/10/2012 Berthold Red Sensitivity.100cm 31.33333 1.674979
6 26/10/2012 Berthold Red Sensitivity.100cm 25.13514 1.330927
在geom_errorbar()
使用value+value2
和value-value2
来设置ymax
和ymin
。
ggplot(data.tog, aes(x=Date, y=value, col=variable)) +
geom_point() +
geom_errorbar(aes(ymin=value-value2,ymax=value+value2))+facet_wrap(~Monitor)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.