【问题标题】:inserting border around a line plot在折线图周围插入边框
【发布时间】:2014-06-10 14:54:35
【问题描述】:

我正在通过绘图功能绘制几种不同鱼类的领地。如何在地块周围插入边框以突出显示该区域?我目前使用的功能是:

  plot(c.tri1.1FG$x.position,c.tri1.1FG$y.position,ylim=c(80,120),xlim=c(110,180),xlab="X position", ylab="Y position", main=expression(paste("Mapped territories of different ", italic("C. trifascialis"), " individuals at the Far Gardens coral reef site")))
points(c.tri1.2FG$x.position,c.tri1.2FG$y.position)
points(c.tri1.3FG$x.position,c.tri1.3FG$y.position)
points(c.tri1.4FG$x.position,c.tri1.4FG$y.position)
points(c.tri1.4FG$x.position,c.tri1.5FG$y.position)

任何帮助将不胜感激

【问题讨论】:

标签: r plot border polygon


【解决方案1】:

如果我理解正确,我认为您正在寻找凸包chull

x <- rnorm(100,0,.2)
y <- runif(100,0,2)
pts <- cbind(x,y)
ch <- chull(pts) #Convex hull
plot(pts, asp=1)

polygon(pts[ch,])

编辑:如何根据您的数据调整此解决方案

plot(c.tri1.1FG$x.position,c.tri1.1FG$y.position,ylim=c(80,120),xlim=c(110,180),xlab="X position", ylab="Y position", main=expression(paste("Mapped territories of different ", italic("C. trifascialis"), " individuals at the Far Gardens coral reef site")))
points(c.tri1.2FG$x.position,c.tri1.2FG$y.position)
points(c.tri1.3FG$x.position,c.tri1.3FG$y.position)
points(c.tri1.4FG$x.position,c.tri1.4FG$y.position)
points(c.tri1.5FG$x.position,c.tri1.5FG$y.position)

x <- c(c.tri1.1FG$x.position,c.tri1.2FG$x.position,c.tri1.3FG$x.position, c.tri1.4FG$x.position, c.tri1.5FG$x.position)
y <- c(c.tri1.1FG$y.position,c.tri1.2FG$y.position,c.tri1.3FG$y.position, c.tri1.4FG$y.position, c.tri1.5FG$y.position)
pts <- cbind(x, y)
ch <- chull(pts)
polygon(pts[ch,])

【讨论】:

  • 太棒了。谢谢你。是否可以在使用点()的一系列数据上使用此函数,这些点的外部部分是“船体”?情节(1.1FG$x,1.1$y,xlab="X 位置", ylab="Y 位置",ylim=c(80,130),xlim=c(70,250)) 点(1.2FG$x,1.2$y)积分(1.3FG$y,1.3$y)
  • 如果您想要更量身定制的答案,您可能希望显示您的数据是什么样子(例如,通过将dput 的结果粘贴到您的问题中的数据集上)。
  • 我已经更新了图表以突出添加 points () 函数。再次感谢任何帮助
【解决方案2】:

polygon 是否满足您的需求?例如这里我用透明填充绘制两个正方形(但只是一个例子):

vecAx <- c(0,0.5,0.5,0)
vecAy <- c(0,0,0.5,0.5)
vecBx <- vecAx + 0.25
vecBy <- vecAy + 0.25

col2hex <- function(my.col, alpha = 0.3) {
    rgb(t(col2rgb(my.col)), maxColorValue = 255, alpha = alpha*255)
}

colA <- col2hex("red", alpha = 0.4)
colB <- col2hex("blue", alpha = 0.4)
## other in colors()                                                            

plot(NA, NA, xlim=c(0,1), ylim=c(0,1))
polygon(vecAx, vecAy, col = colA)
polygon(vecBx, vecBy, col = colB)

明智地选择你的颜色(例如不是红色和蓝色)和/或减少alpha

HTH

【讨论】:

  • 好主意,但多边形在此数据上效果不佳。领土的路径交叉,因此导致了一些混乱。我需要更多的地块外部边界
猜你喜欢
  • 1970-01-01
  • 2012-11-20
  • 2018-01-17
  • 1970-01-01
  • 2011-06-08
  • 1970-01-01
  • 1970-01-01
  • 2017-07-20
  • 1970-01-01
相关资源
最近更新 更多