2013-02-14 4 views
2

Я использую базовую графику R, чтобы сделать диаграмму рассеяния с тысячами точек данных. Один из них имеет наивысшее значение «y». Я хочу заполнить этот пункт, чтобы он выглядел по-другому. Раньше я делал это с одним из следующих. Конечно, количество очков было очень мало, и поэтому я смог легко справиться с этим. Сейчас у меня ~ 3000 очков. Есть идеи?Цвет/заполнение одной точки по-разному в диаграмме рассеяния

col=c{'black','black','black','red','black','black'} 
pch=c(16,16,16,17,16,16) 

ответ

3

Вариант 1: Определить максимальное и сделать свой цвет вектор

set.seed(47) 
n <- 1e4 
xx <- runif(n) 
yy <- rexp(n) 
colors <- rep("black", n) 
colors[which.max(yy)] <- "red" 
plot(xx, yy, col = colors, pch = 16) 

Вариант 2: Заговор макс отдельно. Это, вероятно, проще, особенно если вы хотите настроить больше характеристик, чем просто цвет.

plot(xx, yy, pch = 16) 
points(xx[which.max(yy)], yy[which.max(yy)], col = "red", pch = 17, cex = 2) 
0

Я думаю, что это может быть немного быстрее, чтобы просто сделать:

plot(xx, yy, col=(yy==max(yy)), pch=19) 

Это создаст вектор TRUE и FALSE значений, которые будут принуждены в 1 с и 0 с, так что вы можете необходимо приложить к этому заявлению +1, чтобы избежать использования белого:

plot(xx, yy, col=(yy==max(yy))+1, pch=19) 
+0

Сеньор: Сначала я попробовал ваш ответ, и пока он работал, все t он набрал сплошное тело, и у меня не было контроля над цветом. Я пробовал +1 по +3, но не мог понять, как сохранить остатки очков в виде незаполненных кругов. Спасибо вам за то, что нашли время, чтобы предложить решение. – cryptic0

+0

О, это причина 'pch = 19'. Просто избавитесь от этого аргумента, и это будет похоже на нормальный –

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