#r #ggplot2 #time-series #linechart
#r #ggplot2 #временные ряды #линейная диаграмма
Вопрос:
Я пытаюсь добавить что-то вроде легенды справа, которая указывает имя переменной. Во фрейме данных строки представляют собой столбцы с именами «Расходы на исправление» или «Расходы на медицинскую помощь», и я хочу, чтобы они были показаны. Может кто-нибудь помочь, пожалуйста?
Вот мой график:
Вот мой код:
ggplot(Alabama, aes(x=AlYear))
geom_line(aes(y = AlMed), color = "darkred")
geom_line(aes(y = AlCorr), color="steelblue", linetype="twodash")
labs(title='Figure 3: Alabama Social Spending',
x='Fiscal Year', y= 'Spending (in $100,000')
Ответ №1:
Это связано с тем, что тип расходов (Coor или Med) на самом деле является переменной, которую вы хотите сопоставить с color
эстетикой. Итак, вы должны сначала pivot_longer()
данные, чтобы сохранить их в столбце, затем вы должны включить его в качестве переменной внутри aes()
. Наконец, поскольку цвет теперь является переменной, вы можете установить значения вручную в соответствующем масштабе.
library(tidyverse)
Alabama <- tibble(AlYear = 2010:2015,
AlMed = c(300,400,600,650,700,750),
AlCorr = c(400,400,450,500,450,450))
Alabama %>%
pivot_longer(AlMed:AlCorr, names_to = "Spending Type") %>%
ggplot(aes(x=AlYear, y = value, color= `Spending Type`))
geom_line()
labs(title='Figure 3: Alabama Social Spending',
x='Fiscal Year', y= 'Spending (in $100,000')
scale_color_manual(values=c("darkred", "steelblue"),
labels = c("Medicaid Spending","Correctional Spending"))
Создано 2020-12-09 пакетом reprex (версия 0.3.0)
Конечно, вы можете сделать то же самое для типа линии (добавить его в aes()
вызов и добавить a scale_linetype_manual()
в конце).