Назначить хлайн другого цвета, чем другие линии на графике, не используя scale_colour_manual? - PullRequest
0 голосов
/ 17 октября 2019

Довольно плохо знаком с R, так что прости меня, если это простой вопрос. Я создал график, который отслеживает процент потерь по поставщикам данных. Я назначаю цвет линий "поставщика данных", используя scale_colour_brewer 'blue'. В предыдущей итерации я использовал scale_colour_manual для назначения цвета поставщику данных, однако его уже нельзя использовать, поскольку поставщики данных теперь являются переменными в коде, используя оператор IF для включения в отчет Shiny только в том случае, если ему был назначен 1 ранее. в коде.

Я попытался установить горизонтальную линию на 0,85, чтобы получить красный цвет. Синяя часть кода scale_colour_brewer, кажется, перезаписывает «красную» линию, то есть это толстая синяя линия, которая в легенде имеет название «красный». Как мне это исправить? Пример кода ниже:

LR_Graph_Plot  <- ggplot() +
          geom_hline(aes(yintercept = 0.85, color ="red"), size = 1.25) +
          geom_line(data = LR_Graph(), aes(x = YM1_DATE, y = ELR, group = Data.Provider, color = Data.Provider), size = 0.75) +
          # geom_hline(aes(yintercept = 0)) +
          scale_colour_brewer("Blues") +
          labs(y = "Loss Ratio (%)") +
          ggtitle("Earned Loss Ratio: Loss Ratio Monthly split by Data Provider") + 
          scale_y_continuous(labels = scales ::percent) + 
          scale_x_date(breaks = "months", date_labels = "%Y-%m") + 
          theme_bw() +
          theme(axis.title.x = element_blank(), legend.title = element_blank(), panel.border = element_blank(),
                axis.line.y = element_line(color='black'), axis.line.x = element_line(color='black'),
                legend.position = "right" , axis.text.x = element_text(angle = 90)) +
          theme(
            panel.background = element_rect(fill="#cccccc", color="#000000",size = 2, linetype = "solid"),
            panel.grid.major = element_line(size = 0.5, linetype = "solid", colour = "white"),
            panel.grid.minor = element_line(size = 0.5,linetype = "solid", colour = "white")
          )

        ELR_Graph_Plot <- ggplotly(LR_Graph_Plot)

Извинения, если это неясно или было задано ранее. Я довольно новичок в кодировании.

1 Ответ

0 голосов
/ 17 октября 2019

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

Ваша строка geom_hline(aes(yintercept = 0.85, color ="red"), size = 1.25) должна быть geom_hline(aes(yintercept = 0.85), color ="red", size = 1.25)

...