Изменение цвета точек данных в ggplot

Сначала я запускаю этот код, и он отлично работает (все точки данных становятся синими):

ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy), color = "blue")

Но когда я пытаюсь перемещаться по отображению, как показано ниже, точки данных становятся черными, а не синими.

Это почему?

ggplot(data = mpg, mapping = aes(x = displ, y = hwy), color = "blue") + geom_point() 

person Thewalkindude    schedule 15.08.2017    source источник
comment
Попробуйте ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) + geom_point(color = "blue")   -  person G5W    schedule 15.08.2017
comment
Комментарий @ G5W совершенно прав. Просто чтобы дать вам немного больше информации об этом; Представьте, что вы также хотите соединить точки линиями (geom_line) и хотите, чтобы линия была red. Вот как вы это реализуете: ggplot(data = mpg, aes(x = displ, y = hwy)) + geom_point(color = "blue") + geom_line(color="red"). вы можете использовать одно и то же сопоставление (aes) для всех geom.   -  person M--    schedule 15.08.2017


Ответы (1)


Вы можете совместно использовать переменные внутри сопоставления между геомами. В частности, о color его необходимо определить вне aes и в geom при установке константы (например, "blue"), а не переменной (объяснено здесь: Ответ на: Когда аргумент идет внутри или вне aes).

Я включил пару примеров ниже, чтобы лучше проиллюстрировать это;

library(ggplot2)
## works fine for each geom 
ggplot(data = mpg, aes(x = displ, y = hwy)) + 
  geom_point(color = "blue") + 
  geom_line(color="red")

## doesn't work when not in the geom
ggplot(data = mpg, aes(x = displ, y = hwy), color = "blue") + 
  geom_point() 

## gets evaluated as a variable when in aes
ggplot(data = mpg, aes(x = displ, y = hwy)) + 
  geom_point(aes(color = "blue")) 

## can use a variable in aes, either in geom or ggplot function
ggplot(data = mpg, aes(x = displ, y = hwy)) + 
  geom_point(aes(color = model), show.legend = FALSE) 

person M--    schedule 25.08.2020