R 向时间序列数据图添加图例

R 向时间序列数据图添加图例,r,ggplot2,legend,R,Ggplot2,Legend,我之前问过一个类似的问题,但是前面的代码似乎无法解决我的问题 具体来说,我想在下面的绘图中添加一个图例。我希望暗线被命名为“集群1”,钢蓝线被命名为“集群2”,黑线被标记为“集群3”。我在下面提供了我的尝试。我希望代码只需要稍加修改。图例不需要标题,但如有必要,可称为“图例”或“图例” mat1 <- data.frame(matrix(nrow =10, ncol =4)) colnames(mat1) = c("Date", "Cluster 1", "Cluster 2", "Clu

我之前问过一个类似的问题,但是前面的代码似乎无法解决我的问题

具体来说,我想在下面的绘图中添加一个图例。我希望暗线被命名为“集群1”,钢蓝线被命名为“集群2”,黑线被标记为“集群3”。我在下面提供了我的尝试。我希望代码只需要稍加修改。图例不需要标题,但如有必要,可称为“图例”或“图例”

mat1 <- data.frame(matrix(nrow =10, ncol =4))
colnames(mat1) = c("Date", "Cluster 1", "Cluster 2", "Cluster 3")
date.start = as.Date("2000-01-01")
date.end = as.Date("2000-10-01")
date = seq(from = date.start, to = date.end, by = "month")
mat1[,1] = date
mat1[,2:4] = rnorm(30,0,1)
mat1 %>% ggplot(aes(x= Date, group=1)) + 
  geom_line(aes(y = `Cluster 1`), color = "darkred", linetype = "solid", size=1) +
  geom_line(aes(y = `Cluster 2`), color="steelblue", linetype="twodash", size =1) + 
  geom_line(aes(y= `Cluster 3`), color = "black", linetype = "longdash", size = 1) +
  scale_colour_manual("Legend",
                      values = c("Cluster 1" = "darkred", "Cluster 2" ="steelblue", "Cluster 3" = "black"),
                      breaks = c("Cluster 1", "Cluster 2", "Cluster 3")) +
  scale_linetype_manual("Legend",
                        values = c("solid", "twodash", "longdash"),
                        breaks = c("Cluster 1", "Cluster 2", "Cluster 3")) +
  xlab("Date") + ylab("Average Coefficient") + ggtitle("HML Factor") + theme_classic() +
  theme(
    plot.title = element_text(color = "black", size = 12, face = "bold"),
    axis.title = element_text(size = 12)
  )
mat1%ggplot(aes(x=Date,group=1))+
几何图形线(aes(y=`Cluster 1`),color=“darkred”,linetype=“solid”,size=1)+
几何线(aes(y=`Cluster 2`),color=“steelblue”,linetype=“twodash”,size=1)+
几何图形线(aes(y=`Cluster 3`),color=“black”,linetype=“longdash”,size=1)+
比例颜色手册(“图例”,
值=c(“集群1”=“黑色”、“集群2”=“钢蓝色”、“集群3”=“黑色”),
断开=c(“簇1”、“簇2”、“簇3”))+
比例\线型\手册(“图例”,
值=c(“实心”、“双破折号”、“长破折号”),
断开=c(“簇1”、“簇2”、“簇3”))+
xlab(“日期”)+ylab(“平均系数”)+ggtitle(“HML系数”)+theme_classic()+
主题(
plot.title=元素\文本(color=“black”,size=12,face=“bold”),
axis.title=元素\文本(大小=12)
)

我建议首先调整数据结构,以实现您的目标

您可以使用tidyr的
聚集
函数执行此操作,并在
mat1[,2:4]=rnorm(30,0,1)
行之后执行此操作:

mat1 <- mat1 %>% 
  tidyr::gather(cluster, value, `Cluster 1`:`Cluster 3`)

编辑:将线型添加到几何线条美学中

这会更改线条的颜色和形式。可以保留原始表单吗?对不起,编辑是为了保留行类型。为此,我们需要在
geom\u line
内的
aes()
调用中添加
linetype
。我还将
size=1
重新引入了
geom_-line
调用。希望这对你有用!
mat1 %>% ggplot(aes(x= Date, y = value)) + 
  # geom_line(aes(y = `Cluster 1`), color = "darkred", linetype = "solid", size=1) +
  # geom_line(aes(y = `Cluster 2`), color="steelblue", linetype="twodash", size =1) + 
  # geom_line(aes(y= `Cluster 3`), color = "black", linetype = "longdash", size = 1) +
  geom_line(aes(colour = cluster, linetype = cluster), size = 1) +
  scale_colour_manual(values = c("Cluster 1" = "darkred", "Cluster 2" ="steelblue", "Cluster 3" = "black")) +
  scale_linetype_manual(values = c("Cluster 1" = "solid", "Cluster 2" = "twodash", "Cluster 3" = "longdash")) +
  xlab("Date") + ylab("Average Coefficient") + ggtitle("HML Factor") +     theme_classic() +
  theme(
    plot.title = element_text(color = "black", size = 12, face = "bold"),
    axis.title = element_text(size = 12)
  )