如何获取R图中选定点的坐标?

时间:2015-01-20 05:04:11

标签: r

我需要传递到鼠标指针选择的点的R程序坐标,以执行一些计算。我无法让它发挥作用。

我知道这段代码应该确定情节上的点:

plot(kk2$k2,kk2$k1)
identify(kk2$k2,kk2$k1)

但即使这样也行不通。在情节上出现一些无意义的数字,而点有两个坐标。为什么呢?

如何解决至少这个问题?

我的目标是让点坐标返回到R并对它们执行一些计算。数据集kk2只有两列 - k1和k2,仅此而已。

4 个答案:

答案 0 :(得分:4)

包"门点" CRAN上提供的信息将允许您绘制一个返回您兴趣点的大门。

如果您使用的是RStudio,最好先打开一个新的x11设备,在单独的x11窗口中绘图:

X11()

现在绘制你的观点,我已经编制了一些简单的数据:

kk2 <- data.frame(k2=1:10, k1=1:10)
plot(kk2, col = "red", pch = 16)

Simple plot

运行以下命令,然后通过左键单击并右键单击以关闭多边形来选择您的点:

selectedPoints <- fhs(kk2)

enter image description here

这将返回:

selectedPoints
#> [1] "4" "5" "7"
#> attr(,"gate")
#>         k2       k1
#> 1 6.099191 8.274120
#> 2 8.129107 7.048649
#> 3 8.526881 5.859404
#> 4 5.700760 6.716428
#> 5 5.605314 5.953430
#> 6 6.866882 3.764390
#> 7 3.313575 3.344069
#> 8 2.417270 5.217868

答案 1 :(得分:2)

locator {graphics}  R Documentation
Graphical Input

Description

Reads the position of the graphics cursor when the (first) mouse button is pressed.

![> pts <- locator(4)
> polygon(pts)
> png(); plot(1,1)
> pts <- locator(4)
> polygon(pts)
> dev.off()][1]

答案 2 :(得分:2)

尝试类似这样的事情,因为identify会为您点击的点(您所指的&#39;一些无意义的数字&#39;)返回seq_along(x)

x <- rnorm(10)
y <- rnorm(10)
plot(x,y)
out <- sapply(list(x,y),"[",identify(x,y))
# do some clicking
out
# something like this is returned for the x/y points
#            [,1]        [,2]
#[1,] -0.62221766 -0.73838314
#[2,] -0.69896643  0.40186536
#[3,]  0.06077831 -1.63940474
#[4,] -0.09900270  0.00062011

答案 3 :(得分:1)

关键是将结果用作索引。然后可以使用它来识别特定的xy坐标:

n <- 10
x <- runif(n)
y <- runif(n)
df <- data.frame(x=x, y=y)

plot(y ~ x, data=df)
df[identify(x, y, n=1),]