使用 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()
)。
我正在尝试在右侧添加表示变量名称的图例。在数据框中,这些行是名为“矫正支出”或“医疗补助支出”的列,我希望显示这些列。有人可以帮忙吗?
这是我的情节:
这是我的代码:
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()
)。