2012-01-07 2 views
16

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

Я использую plot

+0

Вы хотите построить все точки данных в определенном цвете или только одну конкретную точку данных? – jitendra

+0

Я хочу, чтобы цвет конкретной точки данных в разбросе. – nit

ответ

10

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

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

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

enter image description here

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

28

Чтобы расширить ответ на ответ @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

+0

Да, любое _expression_ дает скаляр или подлежащий вторичной переработке вектор. Итак, 'col = c (rep (" black ", 3), rep (" blue ", 2))' будет иметь три черные точки, за которыми следуют два блюза. –

+0

Довольно просто, но я никогда не думал об использовании ifelse здесь. спасибо за обмен +1 –

17

Выполнение того, что вы хотите сделать с помощью кода, достаточно просто и othe rs дали хорошие способы сделать это. Если, однако, вы предпочитаете нажимать на точки, которые хотите изменить цвет, вы можете сделать это, используя «идентифицировать» вместе с командой «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) 
+0

Также очень классный dason. Спасибо, что поделились, не думали так использовать идентификацию. +1 –

+1

Идентификация также очень проста в использовании в R Studio. Также полезно для маркировки точек. Но вместо того, чтобы щелкнуть правой кнопкой мыши, чтобы «остановиться», в предварительном просмотре сюжета R Studio есть кнопка с надписью «stop». –

+0

@Captain В моей версии RStudio на самом деле он говорит «Закончить» – Dason

Смежные вопросы