R ggplot2更改线型

R ggplot2更改线型,r,ggplot2,R,Ggplot2,我一直在试着画两个折线图,一个是虚线,另一个是实线。我成功地在情节方面做到了这一点,但传说是有问题的 我看了一些帖子,比如,但是我似乎无法解决这个问题。我哪里出错了 library(ggplot2) year <- 2005:2015 variablea <- 1000:1010 variableb <- 1010:1020 df = data.frame(year, variablea, variableb) p <- ggplot(df, aes(x = df$ye

我一直在试着画两个折线图,一个是虚线,另一个是实线。我成功地在情节方面做到了这一点,但传说是有问题的

我看了一些帖子,比如,但是我似乎无法解决这个问题。我哪里出错了

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

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

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

图书馆管理员 df%>%gathervariable,value,-year%>% ggplotaesx=年份,y=值,颜色=变量,线型=变量+ 几何线
如果您愿意,可以使用适当的比例函数调整颜色和线型比例。

使用tidyr::GARGET重塑数据,将数据放在一列中,这样效果会很好。如何确保只显示整数年?使用scale_x_continuousbreaks=seq2005、2015、5,传递您想要的任何中断序列。