R绘图撤消线段?

时间:2011-11-15 03:27:10

标签: r segment

是否有快速简便的功能来撤消细分或将其从图中删除?

    p1 <- locator(1)
    p2 <- locator(1)
    segments(p1$x, p1$y, p2$x, p2$y, col = 'pink')
    //Undo segments

我的意思是说,是否可以存储您要擦除的线段(每个像素的颜色/强度),然后再添加粉红色线段的线段实际上撤消粉色细分画。如何实现这一目标?

2 个答案:

答案 0 :(得分:6)

你可以使用网格图形,

library(grid)
ll = replicate(2, grid.locator())
g = grid.segments(ll[,1]$x, ll[,1]$y, ll[,2]$x, ll[,2]$y, 
      name="mysegment", gp=gpar(col="pink", lwd=5))
grid.remove("mysegment")

答案 1 :(得分:3)

没有。关于你可以做的最好的事情,除非你使用grid图形是在背景颜色上写入违规段(即如果背景是白色的segments(p1$x, p1$y, p2$x, p2$y, col = 'white') - 有时会失败的黑客攻击。)

为了解决上面提到的更新问题,以某种方式存储写入的像素以便以后删除它们;在R的基础图形系统中(与Paul Murrell的grid图形系统不同,正如@baptiste所讨论的那样,或使用rgl包用于动态3D图形的图形)隐喻是你画的画布。 R不会“记住”它绘制的内容;那些像素或片段被添加到输出设备并被遗忘。