如何在图形线上绘制不同的颜色并插入图例(颜色和列标题)

How to draw different colors on graph line and insert legend (color and column title)

我试过为每一行分配颜色。但是,无法弄清楚如何按照我的意愿显示图例结果。

groupcolours <- c(NE="#999999",NS="#E69F00",NW="#56B4E9",NN="#009E73")

我输入以下代码。

s <- ggplot(time_interval_RSE2) + 
  ggtitle(paste(main_rse_temp,"_",naljja,"_교통량", sep="")) + 
  labs(x="시간(15분 단위)", y="교통량(대수/15분)") +
  theme(axis.text.x=element_text(size=12,angle=90,hjust=1,vjust=0.5),axis.text.y = element_text(size=19),plot.title = element_text(size=25),axis.title.y=element_text(colour="black",size=30),axis.title.x = element_text(colour="black",size=30)) + 
  scale_y_continuous(limits=c(0, 100)) + 
  geom_line(aes(x=time_interval,y=as.numeric(NE),group=1,colour=groupcolours)) +
  geom_line(aes(x=time_interval,y=as.numeric(NS),group=2,colour=groupcolours)) +
  geom_line(aes(x=time_interval,y=as.numeric(NW),group=3,colour=groupcolours)) +
  geom_line(aes(x=time_interval,y=as.numeric(NN),group=4,colour=groupcolours)) + 
  scale_color_manual(name="Direction", values =groupcolours)

我收到这个错误。

Error: Aesthetics must be either length 1 or the same as the data (96): colour

"time_interval_RSE2",table画图

我想要的图表结果

*我已经上传了图片文件。 "dput(time_interval_RSE2)" 不会给出完全相同的值(例如,“0”显示为“0L”)。

["time_interval_RSE2" file download][3]

如评论中所述,请不要将数据添加为图像。而是使用 dput,这样每个人都可以使用数据。

看你的数据图片,数据好像是宽幅的。 要绘制所附图表,您可以将数据转换为长格式(使用包 reshape2 或来自 dplyr 的 gather 函数),然后添加方向变量作为组和颜色变量。

例如(模拟数据):

library(reshape2)
library(tidyverse)

Timestamp <- c("30-07-2019 23:00:00", "31-07-2019 00:00:00", "31-07-2019 01:00:00", 
"31-07-2019 02:00:00", "31-07-2019 03:00:00", "31-07-2019 04:00:00", 
"31-07-2019 05:00:00", "31-07-2019 06:00:00", "31-07-2019 07:00:00", 
"31-07-2019 02:00:00", "31-07-2019 09:00:00", "31-07-2019 10:00:00", 
"31-07-2019 11:00:00", "31-07-2019 12:00:00", "31-07-2019 13:00:00", 
"31-07-2019 14:00:00", "31-07-2019 15:00:00", "31-07-2019 16:00:00", 
"31-07-2019 17:00:00", "31-07-2019 18:00:00", "31-07-2019 19:00:00", 
"31-07-2019 20:00:00", "31-07-2019 21:00:00", "31-07-2019 22:00:00", 
"31-07-2019 23:00:00", "01-08-2019 00:00:00", "01-08-2019 01:00:00"
)

dat <- data.frame(Timestamp, 
                  NE = sample(1:10, length(Timestamp), replace=TRUE), 
                  NS = sample(1:16, length(Timestamp), replace=TRUE), 
                  NW = sample(1:3, length(Timestamp), replace=TRUE))

melt(dat, id="Timestamp") %>% 
     ggplot(aes(Timestamp, value, group=variable, color=variable)) + 
     geom_line()

生成的图像如下所示:

请记住,您必须根据您的数据更改变量名称,因为这只是模拟数据。