Изменение цветов точек точечной диаграммы рассеяния при большом количестве наблюдений

#r #ggplot2 #scatter-plot

#r #ggplot2 #точечная диаграмма рассеяния

Вопрос:

В настоящее время я провожу анализ основных компонентов на большом наборе данных, содержащем множество разных автомобилей в Craigslist. Поскольку наблюдений так много, я хотел бы указать на некоторые конкретные марки автомобилей, например, Mercedes-Benz, Ford или Tesla.

Я делал следующее в ggplot2:

 manufacturer <- data[3] #Which is the labels for the manufacturers
manu.label <- unlist(manufacturer)

ggplot(plot.car.pca, aes(SCA.PCA1, SCA.PCA2, label = manu.label, color = manu.label)   
geom_point()   
geom_text(aes(label = manu.label), hjust = -0.01, vjust = 0)
 

В результате получается следующий график:

Диаграмма рассеяния

Как видно на рисунке, существует множество производителей, но меня интересует только выделение некоторых из них, например, точки автомобилей Ford на диаграмме рассеяния могут быть зелеными, Tesla — красными, а остальные могут быть черными точками. Я надеюсь, что я предоставил достаточно информации и что некоторые из вас могут мне здесь помочь.

Комментарии:

1. Вы могли бы разделить plot.car.pca на два набора данных, первый с производителями, которые вас не интересуют, а второй с производителями, которые вас интересуют. Затем создайте две точки geom_points в функции ggplot и отрегулируйте размеры / цвета и т. Д. По вашему желанию.

Ответ №1:

Доработка моего комментария (пример с mtcars)

 library(ggplot2)
dt <- mtcars

#create column with car name
dt$car <- rownames(dt)

#cars interested in
dt1 <- subset(dt, dt$car %in% c("Toyota Corolla", "Toyota Corona"))

#cars not interested in
dt2 <- subset(dt, !dt$car %in% dt1$car)

#plot with both (individual geom_points)
ggplot(dt2)   geom_point(aes(x = mpg, y = mpg))   geom_point(data = dt1, aes(x = mpg, y = mpg, colour = car))   geom_text(data = dt1, aes(x = mpg, y = mpg, label = car), hjust = 1, vjust = 1)   theme_bw()