ggplot2更改线型

时间:2017-02-20 17:58:47

标签: r ggplot2

我一直试图绘制两个线图,一个是虚线,另一个是实心。我成功地在情节区域这样做,但传说是有问题的。

我查看了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

enter image description here

请注意,这两行在图例中显示为实线。

1 个答案:

答案 0 :(得分:3)

ggplot喜欢长数据,因此您可以将线型和颜色映射到变量。例如,

library(tidyverse)

df %>% gather(variable, value, -year) %>% 
  ggplot(aes(x = year, y = value, colour = variable, linetype = variable)) + 
  geom_line()

如果您愿意,可以使用相应的scale_*_*函数调整颜色和线型比例。