Roc Sc
Roc Sc

Reputation: 21

R: Free hand selection of data points in scatter plots

I would like to know if there is any good way to allow me getting the id of the points from a scatter plot by drawing a free hand polygon in R? I found scatterD3 and it looks nice, but I can't manage to output the lab to a variable in R. Thank you.

Roc

Upvotes: 0

Views: 1350

Answers (2)

Wajid
Wajid

Reputation: 119

The package "gatepoints" available on CRAN will allow you to draw a gate returning your points of interest.

The explanation is quite clear for anyone who reads the question. The link simply links to a package that can be used as follows:

First plot your points

x <- data.frame(x=1:10, y=1:10)
plot(x, col = "red", pch = 16)

Simple plot

Then select your points after running the following commands:

selectedPoints <- fhs(x)

enter image description here

This will return:

selectedPoints
#> [1] "4" "5" "7"
#> attr(,"gate")
#>          x        y
#> 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

Upvotes: 0

lukeA
lukeA

Reputation: 54247

Here's one way

library(iplots)
with(iris, iplot(Sepal.Width,Petal.Width))

Use SHIFT (xor) or SHIFT+ALT (and) to select points (red):

enter image description here

Then:

iris[iset.selected(), ]
#     Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
# 119          7.7         2.6          6.9         2.3 virginica
# 115          5.8         2.8          5.1         2.4 virginica
# 133          6.4         2.8          5.6         2.2 virginica
# 136          7.7         3.0          6.1         2.3 virginica
# 146          6.7         3.0          5.2         2.3 virginica
# 142          6.9         3.1          5.1         2.3 virginica

gives you the selected rows.

Upvotes: 1

Related Questions