2

メインプロットにgeom_line()を追加するたびに、スケールとして「color」を使用して、異なるカラーグラデーションを実現したいと思います。例として、データフレームを次に示します。

df <- data.frame("letter"=c(rep("a",5),rep("b",5)),"x"=rep(seq(1,5),2),"y1"=c(seq(6,10),seq(6,10)/2),"y2"=c(seq(1,5),seq(1,5)/2),"y3"=c(seq(3,7),seq(3,7)/2))

私が最初にプロットするもの:

y1 <- ggplot(df,aes(x=x,y=y1,colour=letter))+geom_line()
y1

次に、y1とy2を追加します。これは、次のように実行できます。

y2 <- geom_line(data=df,aes(x=x,y=y2,colour=letter))
y3 <- geom_line(data=df,aes(x=x,y=y3,colour=letter))
y1+y2+y3

ただし、y1、y2、y3ではカラーグラデーション(または色相)を変えたいと思います。

scale_colour_hue()のようなものを各geom_lineに割り当てることは可能ですか、それともggplotでのみ可能ですか?

ありがとう!

4

1 に答える 1

2

上記で概説したように、ここにいくつかのオプションがあります。

df <- data.frame("letter"=c(rep("a",5),rep("b",5)),
                 "x"=rep(seq(1,5),2),
                 "y1"=c(seq(6,10),seq(6,10)/2),
                 "y2"=c(seq(1,5),seq(1,5)/2),
                 "y3"=c(seq(3,7),seq(3,7)/2))

# melt your data and create a grouping variable
library(plyr)                    
df_m <- melt(df,id.vars = 1:2)
df_m$grp <- with(df_m,interaction(letter,variable))


# Option 1
ggplot(df_m,aes(x = x, y = value)) + 
    facet_wrap(~variable) + 
    geom_line(aes(group = letter,colour = letter))

ここに画像の説明を入力

# Option 2      
ggplot(df_m,aes(x = x, y = value)) + 
    geom_line(aes(group = grp,colour = letter,linetype = variable))

ここに画像の説明を入力

于 2012-06-26T14:54:49.733 に答える