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

Изменение формы для подмножества точек с помощью ggplot2

Я пытаюсь построить большой график рассеяния, который изменяется по большому числу измерений.

Здесь мой начальный сюжет:

 p <- ggplot(mtcars, aes(wt, mpg, shape=cyl, colour=gear, size=carb)) +
      geom_point()

Sample plot with multiple variables

Используя набор данных mtcars, я просто включаю в себя различные формы, цвета и размеры. Теперь я хотел бы добавить к этому некоторый отличительный знак во всех точках с carb == 8. Например, добавьте большой черный круг вокруг этих точек.

Выполнение

p + geom_point() + geom_point(colour="black", shape=1, size=5)

близок тем, что он получает круги, как я хочу, но все точки получают круги, я хочу вместо этого ограничить это только некоторыми точками.

Я был бы очень признателен за любые предложения по этой проблеме.

4b9b3361

Ответ 1

Вместо того, чтобы сначала помещать переменные в функцию ggplot, попробуйте сопоставить свои переменные отдельно для каждого добавляемого слоя.

p <- ggplot(data = mtcars)+
geom_point(aes(wt, mpg, shape=as.factor(cyl), colour=gear, size=carb))+
geom_point(aes(wt[carb==8], mpg[carb==8]), colour="black", shape=1, size=7)  

img