使用 ggplot2 将标签添加到线图

Adding labels to a line plot with 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 0,000')

这是因为消费类型(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 0,000') +
  scale_color_manual(values=c("darkred", "steelblue"),
                     labels = c("Medicaid Spending","Correctional Spending"))

reprex package (v0.3.0)

于 2020-12-09 创建

当然,你可以对线型做同样的事情(在aes()调用中添加它,并在最后添加一个scale_linetype_manual())。