17

I'm looking for a R or ggplot2 solution for plotting a line with shade denotes standard error. Have been google'd a while without lucky.

line plot with shade denotes SE

Did anyone have similar experience and would like to share would be appreciated.

Sample code I used:

> dat <- read.table('sample',header=TRUE)
> ggplot(dat, aes(x=pos,y=value, colour=type))+geom_line()

The figure I generated:

sample figure

Sample data:

pos value   type
1   1.40685064701   A
2   1.58314330023   A
3   1.74204838899   A
4   1.61736939797   A
5   1.29508580767   A
6   1.09467905031   A
7   1.10472385941   A
8   1.02381316251   A
9   1.30213436484   A
10  1.70752481609   A
11  2.01875034644   A
12  1.82218601208   A
13  1.46976809915   A
14  1.78802276311   A
15  1.93459128836   A
16  1.95665864564   A
17  1.57026992442   A
18  1.15962402775   A
19  1.05305484021   A
20  0.919362594185  A
21  0.833060897559  A
22  0.77778822023   A
23  0.980084775745  A
24  1.32114351777   A
25  1.55352963275   A
26  1.57375922815   A
27  1.14493868782   A
28  0.25294849907   A
29  -0.40599118604  A
30  -0.487054890978 A
31  -0.333389189047 A
32  -0.226405253731 A
33  -0.24558780059  A
34  -0.180403027022 A
35  -0.266733706191 A
36  -0.0762920840723    A
37  0.465100892866  A
38  0.516633798421  A
39  0.644986315681  A
40  1.09115362242   A
41  1.08889196437   A
42  0.862434726048  A
43  0.604042272774  A
44  0.328584834197  A
45  0.598617257523  A
46  1.05219653601   A
47  1.10798332527   A
48  0.948151198722  A
49  0.546516443068  A
50  0.291735961134  A
51  0.238335006253  A
52  0.425304707962  A
53  0.817302425729  A
54  1.38852220304   A
55  2.34024990348   A
56  3.09941186364   A
57  4.06854366458   A
58  4.82115051043   A
59  4.55199542056   A
60  6.17279510607   A
61  10.3162999798   A
62  12.996627449    A
63  12.2731258622   A
64  10.8544867366   A
65  8.27264346102   A
66  5.79180739043   A
67  4.81947524098   A
68  4.19372954801   A
69  3.46244417879   A
70  2.69421581749   A
71  1.93753362259   A
72  1.54011797412   A
73  1.29959330498   A
74  1.21705330118   A
75  1.22382555287   A
76  0.952475753311  A
77  0.686398680367  A
78  0.747237736846  A
79  0.720306209509  A
80  0.463068694886  A
81  0.306876218733  A
82  0.121617637342  A
83  0.0460331524847 A
84  -0.0107323735891    A
85  -0.0629997057801    A
86  -0.19204582316  A
87  -0.371375773255 A
88  -0.42668686684  A
89  -0.326517894916 A
90  -0.277301361031 A
91  -0.0386177879973    A
92  0.0101084138435 A
93  0.0605269021344 A
94  0.182751080385  A
95  0.13310933252   A
96  0.27074048104   A
97  0.267598260699  A
98  0.349363089715  A
99  0.264445135486  A
100 0.218924366626  A
101 0.153338812341  A
102 -0.0679742801523    A
103 -0.30849875963  A
104 -0.28903625474  A
105 -0.188860043325 A
106 -0.204777388005 A
107 -0.1461100225   A
108 0.102433799309  A
109 0.122246106735  A
110 -0.105920831771 A
111 -0.21545039794  A
112 -0.135846098251 A
113 -0.105900152586 A
114 -0.247196889682 A
115 -0.312824264065 A
116 -0.251182865438 A
117 -0.0867113506532    A
118 0.00458490479941    A
119 -0.0960520134953    A
120 -0.235300588181 A
1   0.939235632937  A
2   1.28838263139   A
3   1.42730334901   A
4   1.22224614063   A
5   0.896759827332  A
6   0.642894836093  A
7   0.737029720141  A
8   0.774643396412  A
9   0.759420758029  A
10  1.04696772347   A
11  1.23504525458   A
12  1.0676601916    A
13  0.826029313299  A
14  1.14629521568   A
15  1.14142924359   A
16  1.22956581755   A
17  1.13136892357   A
18  0.800448368445  A
19  0.652191202322  A
20  0.498096263495  A
21  0.555339022027  A
22  0.545965232595  A
23  0.726231857788  A
24  0.849494247969  A
25  0.916259379894  A
26  0.879335232046  A
27  0.56575342831   A
28  0.108604596914  A
29  -0.225555689899 A
30  -0.320456274731 A
31  -0.230459986895 A
32  -0.042388319738 A
33  -0.0833366171628    A
34  -0.0460734786257    A
35  -0.229033279226 A
36  -0.175845833699 A
37  0.197716175342  A
38  0.28980276875   A
39  0.512487189675  A
40  0.683324573043  A
41  0.631659584895  A
42  0.522329104013  A
43  0.393330574908  A
44  0.168841230084  A
45  0.350442790229  A
46  0.72946349718   A
47  0.925052059705  A
48  0.821386076473  A
49  0.505908860228  A
50  0.297370018812  A
51  0.212971428154  A
52  0.390453125173  A
53  0.719985040719  A
54  0.977964675176  A
55  1.54450254277   A
56  2.14621503854   A
57  2.99079642364   A
58  3.39269707733   A
59  3.33188837547   A
60  4.10675880825   A
61  6.96009219664   A
62  9.04165938743   A
63  8.65369320149   A
64  7.94685353567   A
65  5.99410112792   A
66  4.270657622 A
67  3.74053623603   A
68  3.16701121242   A
69  2.34745227622   A
70  1.76409736552   A
71  1.51200803675   A
72  1.2907743594    A
73  1.00681298597   A
74  0.862744443537  A
75  0.91574368888   A
76  0.714689640717  A
77  0.517175945403  A
78  0.567676742354  A
79  0.59107492188   A
80  0.36357410485   A
81  0.136113295885  A
82  -0.0424484841936    A
83  -0.0580144665363    A
84  -0.0982479104419    A
85  -0.125561965887 A
86  -0.18724722966  A
87  -0.319063282063 A
88  -0.310923270725 A
89  -0.297680012209 A
90  -0.29067812137  A
91  -0.153124902802 A
92  -0.0832141989646    A
93  0.0360608269851 A
94  0.0692223913598 A
95  0.0301088137407 A
96  0.229967884645  A
97  0.286834318788  A
98  0.302023175627  A
99  0.172030225713  A
100 0.128331231506  A
101 0.0852383292109 A
102 -0.0890769934766    A
103 -0.28596925454  A
104 -0.277955689998 A
105 -0.213135107915 A
106 -0.187743795588 A
107 -0.156312203071 A
108 0.00927423989462    A
109 0.0950491919392 A
110 -0.103823712283 A
111 -0.263438354304 A
112 -0.169133590325 A
113 -0.119342668528 A
114 -0.184209907576 A
115 -0.153083100597 A
116 -0.118314865514 A
117 -0.0218234673043    A
118 0.0354090403385 A
119 -0.176859459446 A
120 -0.254330750514 A
1   1.31156238699   B
2   1.66603897664   B
3   1.8595569523    B
4   1.47610814343   B
5   1.13938772251   B
6   1.07959295698   B
7   1.0562167754    B
8   0.953732152873  B
9   1.27923353158   B
10  1.87416928486   B
11  2.29643917738   B
12  2.11874255833   B
13  1.81800847267   B
14  1.97156297894   B
15  1.95639491025   B
16  1.75903105961   B
17  1.36979841803   B
18  1.20025438569   B
19  1.15465650184   B
20  1.09201899355   B
21  0.948241309108  B
22  0.755764015696  B
23  0.89321992313   B
24  1.55401151175   B
25  1.7724765184    B
26  1.61741216053   B
27  1.19119499499   B
28  0.379190890768  B
29  -0.280643671284 B
30  -0.438517977457 B
31  -0.358544058104 B
32  -0.175439246148 B
33  -0.152975829581 B
34  -0.161103632796 B
35  -0.174444281478 B
36  0.0432634194416 B
37  0.426620630846  B
38  0.484334073737  B
39  0.619581343298  B
40  0.967283510405  B
41  1.15176486771   B
42  0.966602160933  B
43  0.690373835041  B
44  0.319762485659  B
45  0.558607945261  B
46  1.11704365618   B
47  1.35119752184   B
48  1.086453978 B
49  0.522235623898  B
50  0.331232373297  B
51  0.470526554506  B
52  0.88872478677   B
53  1.3777468901    B
54  1.98052619207   B
55  2.74167480929   B
56  3.71564209846   B
57  4.7554986573    B
58  5.35724571871   B
59  5.09994377564   B
60  6.79713731723   B
61  13.5623123968   B
62  19.9726094303   B
63  20.6985773902   B
64  19.5622430224   B
65  16.9252890116   B
66  13.785124688    B
67  12.0153484193   B
68  10.6335853944   B
69  9.23145636242   B
70  8.33279506304   B
71  7.11679306668   B
72  5.98971780649   B
73  4.81795605529   B
74  3.6240387853    B
75  3.17710512841   B
76  3.09525364338   B
77  2.94968830182   B
78  2.85812444624   B
79  2.41084230435   B
80  1.80196837641   B
81  1.18822582466   B
82  0.847087211338  B
83  0.844579278397  B
84  0.719435070951  B
85  0.373826290695  B
86  0.179833579104  B
87  0.10827105313   B
88  0.140513871238  B
89  0.36900575791   B
90  0.545788292614  B
91  0.588906392532  B
92  0.411607834074  B
93  0.436297519059  B
94  0.417543346098  B
95  0.420644053229  B
96  0.754192582582  B
97  0.865901044214  B
98  0.821331429891  B
99  0.859522528975  B
100 1.0698784309    B
101 1.12094185211   B
102 0.954696811999  B
103 0.635033784692  B
104 0.593828176146  B
105 0.662067791202  B
106 0.640073276401  B
107 0.773737194106  B
108 1.04778537143   B
109 1.14218831145   B
110 0.936124315428  B
111 0.761897172562  B
112 0.584860054282  B
113 0.568945253284  B
114 0.592650160898  B
115 0.363421418416  B
116 0.315516608971  B
117 0.556218161647  B
118 0.741402531046  B
119 0.73670589581   B
120 0.731201358535  B
1   0.914487112088  B
2   1.17888880951   B
3   1.34882572489   B
4   1.05705037522   B
5   0.767924473683  B
6   0.627155263031  B
7   0.661419743127  B
8   0.726639134719  B
9   0.904404934323  B
10  1.11446499538   B
11  1.32234502189   B
12  1.11272139974   B
13  0.80278277695   B
14  1.05206129918   B
15  1.03054952945   B
16  0.920053144065  B
17  0.890783999963  B
18  0.745241179888  B
19  0.753375762718  B
20  0.606204084282  B
21  0.439550558806  B
22  0.415665737741  B
23  0.511097171088  B
24  0.753958021098  B
25  0.915744174748  B
26  0.914912288237  B
27  0.650537400908  B
28  0.177843412682  B
29  -0.182744261137 B
30  -0.280968150367 B
31  -0.131322561837 B
32  -0.0936594361197    B
33  -0.111213723334 B
34  -0.0751949309223    B
35  -0.114901791545 B
36  -0.0165691620777    B
37  0.117705450621  B
38  0.195665130311  B
39  0.49300993106   B
40  0.748293222013  B
41  0.702261888166  B
42  0.579761929719  B
43  0.354296503405  B
44  0.0685749425124 B
45  0.276465165244  B
46  0.833851789425  B
47  0.952399770341  B
48  0.780124651512  B
49  0.389046185042  B
50  0.240762613037  B
51  0.334216612367  B
52  0.497505803488  B
53  0.759900678942  B
54  1.12736521148   B
55  1.77820644505   B
56  2.60137514  B
57  3.11618984654   B
58  3.21453966104   B
59  3.02507885677   B
60  4.10630457704   B
61  7.81645787291   B
62  11.474225964    B
63  12.4863009071   B
64  11.5994621204   B
65  9.5999931249    B
66  7.96585566708   B
67  7.08309536929   B
68  6.04261032076   B
69  5.26284702902   B
70  4.76880466452   B
71  4.10897764688   B
72  3.33692117069   B
73  2.6513184514    B
74  2.25667303445   B
75  1.83839013124   B
76  1.84439486988   B
77  1.74545691393   B
78  1.60528910561   B
79  1.42843608445   B
80  0.854469270873  B
81  0.563227776699  B
82  0.299704948636  B
83  0.270143019019  B
84  0.283668987216  B
85  0.181017474033  B
86  0.0822636124446 B
87  -0.0465301247043    B
88  -0.000460798489744  B
89  0.0926334491843 B
90  0.192295768771  B
91  0.29542265617   B
92  0.218214141112  B
93  0.145843998014  B
94  0.12500365606   B
95  0.147889577395  B
96  0.368717140352  B
97  0.580075802767  B
98  0.459540843701  B
99  0.459168312255  B
100 0.614213389976  B
101 0.627367541442  B
102 0.562408018057  B
103 0.31716603245   B
104 0.288874098133  B
105 0.303797627692  B
106 0.338691064084  B
107 0.336034553249  B
108 0.587964074115  B
109 0.649227026019  B
110 0.541946830382  B
111 0.542082081996  B
112 0.51192491824   B
113 0.327474693143  B
114 0.254878532604  B
115 0.134544321919  B
116 0.100368014222  B
117 0.211272916527  B
118 0.267339751552  B
119 0.30990753715   B
120 0.444492582364  B

Thanks again!

dli
  • 1,173
  • 3
  • 14
  • 21
  • 1
    I think `geom_ribbon()` might be what you're looking for, but it will be easier to help you if you provide a [reproducible example](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). – Kara Woo Sep 24 '14 at 15:02
  • @KaraWoo, thanks for fast comment. I tried `geom_ribbon` without success -,- – dli Sep 24 '14 at 15:09
  • What is the desired output here? What standard error are you interested in calculating and how do you want to affect the color of the line? It seems you have one value at each position now. You can't calculate standard error with one observation. – MrFlick Sep 24 '14 at 15:16
  • @MrFlick, thanks for comment. I have 2 values for each data point. Still trying `geom_ribbon`, thanks for all. – dli Sep 24 '14 at 15:25
  • So you want one line? Your sample image (red/black) has two. And then if you calculate the sd for the pair of points to do the coloring, what value are you going to use for the y height? – MrFlick Sep 24 '14 at 15:28
  • @MrFlick, for each type A or B and position I got 2 values. Coloring by A or B. – dli Sep 24 '14 at 15:30
  • @dli I'm sorry, but that simply makes no sense at all. That doesn't explain the "gradient shade". – MrFlick Sep 24 '14 at 15:34

1 Answers1

25

As @MrFlick already said, you can't calculate a standard error for each x-value. However, there are several option you can consider.

Option 1: plot a loess smooth with a very small span with stat_smooth in which you can include a shaded area for the standard error:

ggplot(dat, aes(x=pos,y=value, colour=type)) +
  stat_smooth(method="loess", span=0.1, se=TRUE, aes(fill=type), alpha=0.3) +
  theme_bw()

this gives: enter image description here

Option 2: as you have a high and a low values for each x value, you can plot seperate lines for the high and low values. You have to creat a high/low variable first:

dat$level <- rep(c("high","low"), each=120)
ggplot(dat, aes(x=pos,y=value, colour=type)) +
  geom_line(aes(linetype=level)) +
  theme_bw()

this gives: enter image description here

Option 3: as you have a high and a low values for each x value, you can plot a geom_ribbon between the high and low value with:

ggplot(dat, aes(x=pos,y=value, colour=type)) +
  stat_summary(geom="ribbon", fun.ymin="min", fun.ymax="max", aes(fill=type), alpha=0.3) +
  theme_bw()

this gives: enter image description here

Jaap
  • 81,064
  • 34
  • 182
  • 193
  • Thank you so much. Is there a way the change the color of the shade in your 1st smooth plot? like using the color similar to the line. – dli Sep 25 '14 at 16:01
  • 1
    @dli See the updated answer. I've also updated the third option. – Jaap Sep 25 '14 at 16:12