2016-08-24 4 views
2

Я новичок в ggplot2. Я пытаюсь понять, как использовать ggplot. Я читаю книгу Уикхема и все еще пытаюсь обернуть голову тем, как использовать функцию aes(). В связанном потоке мы обсудили, что мы должны стараться избегать использования переменных внутри aes() i.e. «Не помещать константы внутри aes() - только помещать сопоставления в фактические столбцы данных».Использование цветов в функции aes() в ggplot2

Моя цель - следить за поведением ggplots, когда у нас есть цвет внутри aes() для маркировки (как описано в книге Уикхема), а также переопределить цвет для печати цвета.

Я начал с этим:

library(ggplot2) 
data(mpg) 
ggplot(mpg, aes(displ, hwy)) + 
    geom_point() + 
    geom_smooth(aes(colour = "loess"), method = "loess", se = FALSE) + 
    geom_smooth(aes(colour = "lm"), method = "lm", se = FALSE) + 
    labs(colour = "Method") 

Это красиво участки графиков и маркирует их. Тем не менее, я недоволен используемыми цветами. Итак, я экспериментировал с использованием переопределения цвета снова:

windows() 
ggplot(mpg, aes(displ, hwy)) + 
    geom_point() + 
    geom_smooth(aes(colour = "loess"), method = "loess", se = FALSE, color = "magenta") + 
    geom_smooth(aes(colour = "lm"), method = "lm", se = FALSE, color = "red") + 
    labs(colour ="Method") 

Я добавил цвета = «красный», и мы можем видеть, что labs() или aes(color()) не имеет никакого эффекта. Почему это происходит? Мне любопытно. Я буду благодарен за мысли.

+0

Я думаю, что это и ниже ответ может работать по неправильной причине. Разве это не должно быть 'method =" loess "' not 'color = ...' cc: @ user1470500 – beroe

ответ

4

При указании цвета вне aes() gg_plot не учитывает информацию о цвете, являющуюся частью данных (и перезаписывает предыдущую информацию), поэтому больше нет легенды.

Если вы хотите задать свои собственные цвета и сохранить информацию о цвете «соответствующие данные», а не «отображения информации», вы должны добавить команду scale_colour_manual() указание условных обозначений цветов и оставить атрибут цвета в aes:

ggplot(mpg, aes(displ, hwy)) + 
    geom_point() + 
    geom_smooth(aes(colour = "loess"), method = "loess", se = FALSE) + 
    geom_smooth(aes(colour = "lm"), method = "lm", se = FALSE) + 
    labs(colour ="Method") + scale_colour_manual(values = c("loess" = "magenta", "lm" = "red")) 

enter image description here

+0

Я бы предложил добавить ваш сюжет –

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