2016-10-08 38 views
0

我試圖創建一個循環繪製在幾個不同顏色不同的線。我知道這可以很容易地使用ggplot2完成,過去我已經使用過很多,但現在ggplot2給了我一些額外的線路,不應該在那裏。環路與不同的顏色密度線路中的R

我嘗試了很多不同的組合來爲顏色或額外的循環內部創建一個新的變量,但只是無法解決這個問題。到目前爲止,我所得到的最好的結果是使所有的線條具有相同的顏色(紅色或綠色),但這沒用。 這是我正在使用的代碼。我想爲每個var2獲取不同的顏色。 謝謝!

a <- data.frame(var1=rnorm(500, m=0.5, sd=1), 
       var2=c("a")) 
b <- data.frame(var1=rnorm(500, m=0.6, sd=1.1), 
      var2=c("b")) 
c <- data.frame(var1=rnorm(500, m=0.7, sd=1.2), 
      var2=c("c")) 
mydata<-data.frame(rbind(a,b,c)) 

y<-unique(mydata$var2) 

plot(1, type="n", xlab="", ylab="", xlim=c(-5,5), ylim=c(0, 0.5)) 
for (i in y){ 
    lines(density(mydata$var1[mydata$var2==i]))} 

density plot

回答

0

我只是想出瞭如何解決這個問題。我會在這裏張貼,以防其他人需要它。 首先,創建一個新的變量爲每個VAR2顏色:

a <- data.frame(var1=rnorm(500, m=0.5, sd=1), 
       var2=c("a")) 
a$color<-c("#FF0000FF") 

然後分配給每個曲線顏色:

col=mydata$color[mydata$var2==i] 

最終的代碼,我得到的是這樣的:

a <- data.frame(var1=rnorm(500, m=0.5, sd=1), 
       var2=c("a")) 
a$color<-c("#FF0000FF") 
b <- data.frame(var1=rnorm(500, m=0.6, sd=1.1), 
      var2=c("b")) 
b$color<-c("#00FF00FF") 
c <- data.frame(var1=rnorm(500, m=0.7, sd=1.2), 
      var2=c("c")) 
c$color<-c("#0000FFFF") 
mydata<-data.frame(rbind(a,b,c)) 

y<-unique(mydata$var2) 
plot(1, type="n", xlab="", ylab="", xlim=c(-5,5), ylim=c(0, 0.5)) 
for (i in y){ 
    lines(density(mydata$var1[mydata$var2==i]),col=mydata$color[mydata$var2==i])} 

希望它可以幫助別人