2013-10-05 2 views
0

Таким образом, у меня есть эти данныезаливка участки графа с использованием R

Time Average Test n se 
1 20 5.80000  Exp 9 0.120 
2 40 6.10000  Exp 9 0.145 
3 60 6.40000  Exp 9 0.188 
4 80 6.70000  Exp 9 0.990 
5 100 7.00000  Exp 9 0.440 
6 120 7.70000  Exp 9 0.320 
7 20 8.47000 Control 9 0.500 
8 40 9.31700 Control 9 0.880 
9 60 10.24870 Control 9 0.900 
10 80 11.27357 Control 9 0.330 
11 100 12.40093 Control 9 0.456 

И я использовал следующий код, чтобы построить его

ggplot(data, aes(x=Time, y=Average, colour=Test)) + 
    geom_errorbar(aes(ymin=Average-se, ymax=Average+se), width=0.2) + 
    geom_line() + 
    geom_point() 

Я хочу, чтобы тень отдельных разделов в этом графике. Например, я хочу затенять часть с 20 до 30 с. Это можно сделать в ggplot2?

+3

Использование 'geom_rect'? – Roland

ответ

3

Из описания не совсем понятно, что вы имели в виду. Как насчет этого: ?

ggplot(data, aes(x=Time, y=Average, colour=Test)) + 
    geom_rect(aes(xmin=20,xmax=30,ymin=-Inf,ymax=Inf),fill="pink",colour=NA,alpha=0.05) + 
    geom_errorbar(aes(ymin=Average-se, ymax=Average+se), width=0.2) + 
    geom_line() + 
    geom_point() 

Example of vertical shading

+0

Спасибо, это прекрасно! Мне было интересно, можно ли изменить цвет? Например, может ли тень быть розовым? –

+0

Несомненно, вам просто нужно указать эстетику «fill». См. Обновленный ответ. Обратите внимание, что значение «colour» здесь относится к контурному цвету прямоугольника, но я думал, что он выглядит лучше «прозрачным» ('color = NA'). – dnlbrky

Смежные вопросы