Как вы управляете цветовой схемой geom_line в приведенном ниже коде?

#graph #colors #yaxis

#График #Цвет #yaxis

Вопрос:

У меня есть график, который сочетает в себе гистограмму и связанную диаграмму рассеяния, сгруппированную по временным рамкам. Я уже использовал функцию scale_fill_manual для управления цветом гистограммы. R использует цвета по умолчанию для температурных линий над гистограммой. Я попытался снова использовать scale_fill_manual, но это не сработало, и, похоже, я не могу назначить цвета в моей функции case_when. Могу ли я каким-либо образом изменить их (я бы хотел, чтобы они были желтыми, оранжевыми и красными, чтобы показывать повышение температуры с течением времени). Спасибо!

 am_graph <- ggplot((am), aes(x=factor(Month,levels=month.abb)))  
  geom_col(aes(y = Precipitation, group = Timeframe, fill = Timeframe), width = .7, position = "dodge")  
  geom_line(aes(y = Mean_Temperature*10, group = Timeframe, col = case_when(
    Timeframe == "1970-2000" ~ "1970-2000",
    Timeframe== 2018 ~ "2018",
    TRUE ~ "2041-2060")))  
  geom_point(size = 0.25, aes(y = Mean_Temperature*10, group = Timeframe))  
  scale_color_discrete(name = "Timeframe")  
  ggtitle("Alto Mayo Monthly Climate Conditions (1970-2060)")  
  xlab("Month")  
  ylab("Precipitation (mm)")  
  scale_y_continuous(breaks = seq(0, 220, by = 20), limit = c(0, 220), expand = c(0, 0), sec.axis = sec_axis(~./10, name = "Temperature (°C)"))  
  scale_fill_manual(values = c("lightblue2", "steelblue2", "royalblue1"))  
  theme_classic()
  

Ответ №1:

Заставил это работать для всех, кому интересно!

 am_graph <- ggplot((am), aes(x=factor(Month,levels=month.abb)))  
  geom_col(aes(y = Precipitation, group = Timeframe, fill = Timeframe), width = .7, position = "dodge")  
  geom_line(size = 0.5, aes(y = Mean_Temperature*10, group = Timeframe, col = case_when(
    Timeframe == "1970-2000" ~ "1970-2000",
    Timeframe== 2018 ~ "2018",
    TRUE ~ "2041-2060")))  
  geom_point(size = 0.5, aes(y = Mean_Temperature*10, group = Timeframe))  
  ggtitle("Alto Mayo Monthly Climate Conditions (1970-2060)")  
  xlab("Month")  
  ylab("Precipitation (mm)")  
  scale_y_continuous(breaks = seq(0, 220, by = 20), limit = c(0, 220), expand = c(0, 0), sec.axis = sec_axis(~./10, name = "Temperature (°C)"))  
  scale_fill_manual(name = "Precipitation", values = c("lightblue2", "steelblue2", "royalblue1"))  
  scale_color_manual(values = c("lightgoldenrod2", "darkorange2", "tomato3"))  
  guides(col = guide_legend("Temperature"))  
  theme_classic()