2014-02-07 37 views
0

我想繪製鑽石,使用不同的寬度和高度值。在這個簡單的例子中,我想繪製三顆鑽石,第一顆(灰色)不是寬但高,第二顆(紅色)寬至高,第三顆寬但不高。R繪製鑽石並調整其寬度和高度

我準備了一個非常簡單的R代碼來說明這一點;我添加了一個矢量寬度和高度來說明我想要的。 cex在我的示例中只使用前三個參數來放大鑽石。 有沒有可能用不同的高度和寬度來形成鑽石(也許用另一個包裝?)?還是有一個簡單的方法來調整我的代碼?

outfilename="diamondsize.png" 
png(file=outfilename) 

xCoords=c(1,2,3) 
yCoords=c(1,2,3) 
width=c(5,10,15) 
height=c(15,10,5) 
plot(xCoords,yCoords,pch=23,cex=cbind(width,height), 
    bg=c("grey","red","navyblue"),xlim=c(0,4),ylim=c(0,4)) 
dev.off() 

非常感謝!

+0

在TeachingDemos中有一個[my.symbols函數](http://www.inside-r.org/packages/cran/TeachingDemos/docs/my.symbols) – baptiste

回答

1

這是什麼可以polygon做一個樣本:

x1 <- c(1,2,3,2,1) 
y1 <- c(0,1,0,-1,0) 

x2 <- 2*x1+4 
y2 <- 5*y1 
plot(c(x1,x2),c(y1,y2),type='n'); 
polygon(x1,y1,col=2,border=2) 
polygon(x2,y2,col=3,border=3) 

這將創建2顆鑽石。第二個(綠色)橫座標平移4,橫座標平移2,縱座標平移5。

enter image description here

0

這是一個風格問題,但我會創建一個「默認的鑽石」的物體,像diamond <- cbind(c(-1,0,1,0),c(0,1,0,-1)),然後創建一個函數來重新大小它。

dsize<-function(x,y,diamond=diamond) { 
    diamond[,1]<-diamond[,1]*x 
    diamond[,2]<-diamond[,2]*y 
} 

並採取輸出多邊形&情節吧。

相關問題