我一直试图绘制两个线图,一个是虚线,另一个是实心。我成功地在情节区域这样做,但传说是有问题的。
我查看了Changing the line type in the ggplot legend这样的帖子,但似乎无法修复解决方案。我哪里出错了?
library(ggplot2)
year <- 2005:2015
variablea <- 1000:1010
variableb <- 1010:1020
df = data.frame(year, variablea, variableb)
p <- ggplot(df, aes(x = df$year)) +
geom_line(aes(y = df$variablea, colour="variablea", linetype="longdash")) +
geom_line(aes(y = df$variableb, colour="variableb")) +
xlab("Year") +
ylab("Value") +
scale_colour_manual("", breaks=c("variablea", "variableb")
, values=c("variablea"="red", "variableb"="blue")) +
scale_linetype_manual("", breaks=c("variablea", "variableb")
, values=c("longdash", "solid"))
p
请注意,这两行在图例中显示为实线。
答案 0 :(得分:3)
ggplot喜欢长数据,因此您可以将线型和颜色映射到变量。例如,
library(tidyverse)
df %>% gather(variable, value, -year) %>%
ggplot(aes(x = year, y = value, colour = variable, linetype = variable)) +
geom_line()
如果您愿意,可以使用相应的scale_*_*
函数调整颜色和线型比例。