【问题标题】:R plot diamond and adjust its width and heightR绘制菱形并调整其宽度和高度
【发布时间】:2014-02-07 11:07:09
【问题描述】:

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

在这个简单的例子中,我想画三个菱形,第一个(灰色)不宽但高,第二个(红色)等宽,第三个宽但不高。

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

非常感谢!

【问题讨论】:

标签: r graphics plot


【解决方案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。

【讨论】:

    【解决方案2】:

    这是个人喜好问题,但我会创建一个“默认菱形”对象,例如 diamond &lt;- 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
    }
    

    并获取输出多边形并绘制它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-27
      • 2021-10-18
      • 2022-01-15
      • 2018-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多