2011-02-11 5 views
0

Rでプロットするのは少ししかやりませんでしたので、少し助けが必要です。前もって感謝します。Rプロット - 既知の色の線群

私は2つのdata.framesを持っている:

> dim(MyDates) 
[1] 371 1 
> dim(SumData) 
[1] 371 30 

MyDatesは371月曜日〜金曜日の日付を保持しています。 SumDataはMyDatesに対して適切に整列された30の異なるデータストリームを保持します。データは、例えばとして定義6グループにクラスタ化されている

groups=list(1:5,6:10,11:15,16:20,21:25,26:30) 

IはSumData内のすべての30個の列と、ワンプロットを作成したい(と思う)の実線としてプロット。 X軸はMyDatesの昇順でなければなりません。私は、それぞれのグループに違った色を付けたいと思います。

group1 = red 
group2 = yellow 
group3 = green 
group4 = cyan 
group5 = blue 
group6 = magenta 

1プロット、30ライン、6グループ、5ライン/グループ、各グループは予め定義された色である。

どうすればこの問題を解決できますか?

ありがとうございます!

答えて

0

は正しい色でggplotの答えです。

require(ggplot2) 

ngroups = 6 
dummygroup <- function(g) 
       (g * 50) + apply(matrix(rnorm(371 * 5), ncol = 5), 2, cumsum) 
SumData <- do.call("data.frame", lapply(ngroups:1, dummygroup)) 
MyDates <- as.Date(1:371, origin="2009-01-01") 
df <- data.frame(MyDates, SumData) 
dfmelt <- melt(df, id = "MyDates", variable_name = "series") 
dfmelt$Groups <- factor(rep(1:ngroups, each = 371 * 5)) 

Colors <- c("red","yellow","green","cyan","blue","magenta") 
p <- ggplot(dfmelt, aes(MyDates, value, color = Groups, group = series)) 
p <- p + geom_line() + scale_colour_manual(values = Colors) 
print (p) 
+0

面白そうだと初心者としてコードは便利ですが、それはここに私のために実行されませんでした: – LGTrader

+0

@LGTraderを:正常に動作するようです。問題があった場合に備えて、ggplot2パッケージが必要な行を追加しました。 –

1

ハックのビットが、これは仕事を取得します...ここで

require(zoo) 

# z <- zoo(SumData, MyDates) 
z <- zoo(matrix(rnorm(30*371),371,30),Sys.Date()-371:1) 

Groups <- list(1:5,6:10,11:15,16:20,21:25,26:30) 
Colors <- c("red","yellow","green","cyan","blue","magenta") 

Col <- vector("character",length(unlist(Groups))) 
for(i in 1:length(Groups)) { 
    Col[Groups[[i]]] <- Colors[i] 
} 

plot(z, screens=1, col=Col)