2016-08-11 77 views
-2

我有四个时间序列变量,我想将它们全部绘制在一张图中。我想用实线绘制两个变量,用虚线绘制另一个变量。实线为红色和蓝色,虚线为黑色和棕色。我想知道是否有人可以帮助编码?我现在有以下几种:ggplot2,如何控制线型和颜色

data1 = melt(data, id = 'Year') 
ggplot(data1, aes(x = Year, y = value,colour=variable)) + 
    geom_line() + 
    ylab(label="Index") + xlab("") + 
    scale_colour_manual(values = c("red","blue","black", "brown"),labels = c("ES","LS","Wax","EP"))+ 
    theme(legend.position=c(0.15,0.85),legend.title=element_blank(),legend.background = element_rect(fill=NULL)) 

此代码只生成一条只有实线的图形。

+0

这是必须知道data1'的'结构为这个问题可以回答。 –

+0

@MatthewDrury,它是时间序列,每个变量有214个年度观察值。谢谢。 – london

+1

Google“ggplot2线型”。 – AlexR

回答

1

我以为我可以重新东西,看起来都DATA1本

data1=data.frame(Year=1:100,value=rnorm(100),variable=factor(floor(4*runif(100)+1))) 

你需要改变你的线型是scale_linetype_manual()函数什么。

比如在你的问题,我的答案是

library(ggplot2) 
ggplot(data1, aes(x = Year, y = value,colour=variable)) + 
    geom_line(aes(linetype=variable)) + 
    ylab(label="Index") + xlab("") + 
    scale_linetype_manual(values=c("solid", "solid","dashed", "dashed"),labels=c("ES","LS","Wax","EP")) + 
    scale_colour_manual(values = c("red","blue","black", "brown"),labels=c("ES","LS","Wax","EP"))+ 
    theme(legend.position=c(0.15,0.85),legend.title=element_blank(),legend.background = element_rect(fill=NULL)) 

主要生产: Graph with legend

+0

非常感谢。我如何放置图例名称?您能否通过放置传说名称来编辑答案,以便答案完整,然后将其标记为答案。 – london

+0

完成;) 如果我可以添加,你基本上只需要为每个* scale_XXX_manual()*放置相同的标签。 – Arault