#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()