2013-08-22 42 views
0

可有人請告訴我如何與ggplot(通過使用this工具生成的代碼)下面的互動效應繪製:如何將回歸交互圖轉換爲ggplot?

xx <- c(40,65) 
yy <- c(26.77,37.15) 
x <- c(40,65) # <-- x-coords for lines 
y1 <- c(28.5,37.15) 
y2 <- c(30.345,35.895) 
y3 <- c(32.19,34.64) 
plot(xx,yy,type='n',font=2,font.lab=2,xlab='x1',ylab='Y',main='2-Way Interaction Plot') 
lines(x,y1,lwd=3,lty=1,col=1) 
lines(x,y2,lwd=3,lty=5,col=2) 
lines(x,y3,lwd=3,lty=6,col=3) 
points(x,y1,col=1,pch=16) 
points(x,y2,col=1,pch=16) 
points(x,y3,col=1,pch=16)              
legend(leg[1],leg[2],legend=c('W1(1)','W1(2)','W1(3)'),lwd=c(3,3,3),lty=c(1,5,6),col=c(1,2,3)) 

Y1,Y2,Y3是主持人點/有條件的斜率值。

+1

歡迎來到交叉驗證!但是這個問題是關於編程的,在堆棧溢出時會更好。 – Scortchi

+0

我希望[this](http://www.cookbook-r.com/Graphs/Bar_and_line_graphs_%28ggplot2%29/#with-x-axis-treated-as-continuous)和[this](http:// docs .ggplot2.org/current/stat_summary.html)例子會讓你開始。 – Henrik

+0

請檢查你的語法。 「leg [1]」和「leg [2]」是什麼? – Frank

回答

0

你需要長格式的數據框:(圖例出現自動的)

dfrm <- data.frame(x=rep(x,3), y=c(y1,y2,y3), 
        group=rep(c("y1","y2","y3") ,each=2)) 
ggplot(data=dfrm, aes(x=x,y=y,group=group)) + 
         geom_point()+geom_line(aes(col=group)) 

也有xlimylim功能,如果你想強制你應用到了「XX」和YY限制您的基本圖形模板中的空白繪圖框架。

enter image description here

+0

謝謝@DWin。如果像我這樣的其他人是新手,並且正在嘗試複製:group是主持人「w」 - 變量,上面的y1,y2,y3是w(值)的條件值。數據幀AND ggplot的編碼爲: 'group = c(「w(1)」,「w(1)」,「w(2)」,「w(2)」,「w(3)」 ,「w(3)」) x = c(40,65,40,65,40,65) y = c(28.5,37.15,30.345,35.895,32.19,34.64) mydata < - data.frame x,y,group) ggplot(data = mydata,aes(x = x,y = y,group = group))+ geom_point()+ geom_line(aes(col = group))'' – user29436