В базе R вы можете добавить id
манекен, который равен 1
для строк, которые нужно идентифицировать, иначе 0
. В графике используйте id
в качестве значения для параметра pch
.
iris2 <- transform(iris, Species=as.character(Species), id=0)
iris2[1:3, "id"] <- 1
petal_data <- iris2[c("Petal.Width", "Petal.Length")]
rotated_petals <- data.frame(prcomp(petal_data)$x, Species=iris2$Species, id=iris2$id,
stringsAsFactors=F)
u.spec <- unique(rotated_petals$Species)
col. <- 1:length(u.spec)
incr.pch <- 1
plot(rotated_petals[-(3:4)], type="n")
sapply(seq(u.spec), function(x)
with(rotated_petals[rotated_petals$Species == u.spec[x], ],
points(PC1, PC2, col=col.[x] + 1, pch=id + incr.pch)))
legend("topleft", legend=c(u.spec, "identified"), col=c(col., "grey50"),
pch=c(1, 1, 1, 1 + incr.pch), horiz=T, bty="n", cex=.9)
Результат
![enter image description here](https://i.stack.imgur.com/wEbCx.png)
Примечание , что вы пытаетесь переопределить базовую функцию R plot
, что является плохой идеей. Используйте rm(plot)
для сброса перед запуском этого решения.