R: Построить несколько линий на одной оси со средним жирным шрифтом? - PullRequest
2 голосов
/ 25 октября 2010

У меня есть некоторые данные, которые выглядят так:

df <- data.frame(time=1:6, a=c(100, 90, 91, 92, 91, 91.5), b=c(99.9, 90.3, 90.9, 91.8, 92, 91.5), c=c(100.3, 88.5, 90.5, 91.5, 91, 91.3))
df <- data.frame(df, mean=apply(df[,2:4], 1, mean))
> df
  time     a    b     c      mean
1    1 100.0 99.9 100.3 100.06667
2    2  90.0 90.3  88.5  89.60000
3    3  91.0 90.9  90.5  90.80000
4    4  92.0 91.8  91.5  91.76667
5    5  91.0 92.0  91.0  91.33333
6    6  91.5 91.5  91.3  91.43333

Я хочу нанести линии на том же холсте с time на оси X. Я хочу, чтобы линии a, b и c были слегка прозрачными (или слегка окрашенными), а mean были жирными и очень четкими.

Ответы [ 3 ]

4 голосов
/ 25 октября 2010

Хорошо, на этот раз в ggplot! Сначала вы должны расплавить свой df до одной точки в строке, затем магия ggplot:

dfm = melt(df,"time",c("a","b","c","mean"))
ggplot(dfm)+geom_line(
  aes(x=time,y=value,colour=variable)) + 
  scale_colour_manual(values=c("#FF000080","#00FF0080","#0000FF80","black"))
2 голосов
/ 25 октября 2010

В базовой графике, matplot:

matplot(df$time,df[,c("a","b","c","mean")],
  type="l",
  col=c("#FF000040","#00FF0040","#0000FF40","black"),
  lty=1,lwd=3)

настроить цвета на свой вкус. Обратите внимание, что аргументы повторяются, поэтому все строки имеют lty = 1 и lwd = 3, но цвета индивидуальны.

1 голос
/ 27 октября 2010

Spacedman не делает решетки, но это кажется довольно простым:

   xyplot(a+b+c+mean ~ time, data=df, type="l", 
           col=c("#FF000080","#00FF0080", "#0000FF80","black"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...