Подтвердить что ты не робот

Настройка цвета для отдельной точки данных

Как установить цвет для одной точки данных на диаграмме рассеяния в R?

Я использую plot

4b9b3361

Ответ 1

Чтобы расширить ответ на @Dirk Eddelbuettel, вы можете использовать любую функцию для col в вызове plot. Например, это окрашивает точку x==3 красным цветом, оставив все остальные черными:

x <- 1:5
plot(x, x, col=ifelse(x==3, "red", "black"))

example 1

То же самое относится к символу точки pch, расширению символа cex и т.д.

plot(x, x, col=ifelse(x==3, "red", "black"),
     pch=ifelse(x==3, 19, 1), cex=ifelse(x==3, 2, 1))

example 2

Ответ 2

Выполнение того, что вы хотите сделать с помощью кода, достаточно просто, а другие предоставили хорошие способы сделать это. Если, однако, вы предпочитаете нажимать на точки, которые хотите изменить цвет, вы можете сделать это, используя "идентифицировать" вместе с командой "points", чтобы переделать эти точки в новом цвете.

# Make some data
n <- 15
x <- rnorm(n)
y <- rnorm(n)

# Plot the data
plot(x,y)

# This lets you click on the points you want to change
# the color of.  Right click and select "stop" when
# you have clicked all the points you want
pnt <- identify(x, y, plot = F)

# This colors those points red
points(x[pnt], y[pnt], col = "red")

# identify beeps when you click.
# Adding the following line before the 'identify' line will disable that.
# options(locatorBell = FALSE)

Ответ 3

Используйте аргумент col=, который векторизован так, чтобы, например, в

 plot(1:5, 1:5, col=1:5)

вы получаете пять очков в пяти разных цветах:

enter image description here

Вы можете использовать ту же логику, чтобы использовать только два или три цвета среди ваших точек данных. Понимание индексации является ключевым в таких языках, как R.