看板 NCTU-STAT95G 關於我們 聯絡資訊
###########彩色無痕跡版之平面板!!!!!!!!!!!!!!!! #################NOTE################################################### ## x與y 是圖型的範圍, 需給一向量 ## ((1) r,g,b 在 [0,1]之間, 越低越深色 反之越接近淺色; ## (2) xcorint (ycorint)是x座標(y座標)位數的間格 ## (3) 若不要加外框在最後 axbox打FALSE ## (4) r, g, b 只要有1個等於1就是純白 ## 其餘與plot 裡參數類似 ######################################################################### background2_1 <- function(x = c(-20,20), y = c(-20,20), r = 0.5, g=0.5, b = 0.5, xcorint = 5, ycorint = 5, axbox = TRUE, xlable="",ylable="",title ="") { ax <- min(x) bx <- max(x) ay <- min(y) by <- max(y) if(ax == bx || ay == by ||r > 1 ||r < 0 ||g > 1 ||g < 0 ||b > 1 ||b < 0 ){ warning("給我去看note!!") return(0); } if(xcorint > bx || ycorint > by){ warning("間隔大於你的最大軸座標啦") return(0); } plot(x, y, type='n', axes=F, xlab=xlable, ylab=ylable, main=title) i<-1 while(r+i*0.005 < 1 && g+i*0.005 < 1 && b+i*0.005 < 1){ if(r == 0){ if(b == 0) polygon(c(ax-5,ax-5,(bx)-(i-1)/5+5,(bx)-(i-1)/5+5),c(ay-5, by+5, by+5, ay-5),col= rgb(0,g+i*0.005,0), lty=0) else if(g == 0) polygon(c(ax-5,ax-5,(bx)-(i-1)/5+5,(bx)-(i-1)/5+5),c(ay-5, by+5, by+5, ay-5),col= rgb(0,0,b+i*0.005), lty=0) else polygon(c(ax-5,ax-5,(bx)-(i-1)/5+5,(bx)-(i-1)/5+5),c(ay-5, by+5, by+5, ay-5),col= rgb(0,g+i*0.005,b+ i*0.005), lty=0) } else if(b == 0){ if(g == 0) polygon(c(ax-5,ax-5,(bx)-(i-1)/5+5,(bx)-(i-1)/5+5),c(ay-5, by+5, by+5, ay-5),col= rgb(r+i*0.005,0,0), lty=0) else polygon(c(ax-5,ax-5,(bx)-(i-1)/5+5,(bx)-(i-1)/5+5),c(ay-5, by+5, by+5, ay-5),col= rgb(r+i*0.005,g+i*0.005,0), lty=0) } else if(g == 0) polygon(c(ax-5,ax-5,(bx)-(i-1)/5+5,(bx)-(i-1)/5+5),c(ay-5, by+5, by+5, ay-5),col= rgb(r+i*0.005,0,b+ i*0.005), lty=0) else polygon(c(ax-5,ax-5,(bx)-(i-1)/5+5,(bx)-(i-1)/5+5),c(ay-5, by+5, by+5, ay-5),col= rgb(r+i*0.005,g+i*0.005,b+ i*0.005), lty=0) i <- i + 1 } ix<- seq(ax,bx,xcorint) iy<- seq(ay,by,ycorint) abline(v=ix, h=iy, col = "lightyellow", lty = "dotted") if(axbox == TRUE){ box() axis(1, ix) axis(2, iy) } else{ axis(1, seq(ax-xcorint,bx+xcorint,xcorint),lwd=2, lty='dotted') axis(2, seq(ay-ycorint,by+ycorint,ycorint),lwd=2, lty='dotted') } } ## Example:想要試試 用下面喔 x <-c(-20,20) y <-c(-30,30) ##(1)紅色 background2_1(x , y, r = 0.01, g = 0, b = 0) windows() ##(2)綠色 background2_1(x , y, r = 0, g = 0.01, b = 0) windows() ##(3)藍色 background2_1(x , y, r = 0, g = 0, b = 0.01) windows() ##(4)黃色 (在b=0) background2_1(x , y, r = 0.01, g = 0.01, b = 0) windows() ##(5)紫色 (在g=0) background2_1(x , y, r = 0.01, g = 0, b = 0.01) windows() ##(6)灰色 (在r=g=b) background2_1(x , y, r = 0.01, g = 0.01, b = 0.01) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.191.14 ※ 編輯: josephw 來自: 140.113.191.14 (05/18 23:19)
josephw:改好了 05/18 23:19