R绘制菱形并调整其宽度和高度

时间:2014-02-07 11:07:09

标签: r graphics plot

我想绘制钻石,使用不同的宽度和高度值。

在这个简单的例子中,我想绘制三颗钻石,第一颗(灰色)不宽而高,第二颗(红色)宽而高,第三宽而不高。

我为一个情节准备了一个非常简单的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()

非常感谢!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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
}

取输出多边形&amp;绘制它。