我试图创建一个每小时的线图,每15分钟收集一次数据,如下所示:
#load necessary libraries
library(tidyverse)
library(dplyr)
library(ggplot2)
DT <- data.frame(periods=c("7:15- 7:30","7:30- 7:45","7:45- 8:00",
"8:00-8:15","8:15-8:30","8:30-8:45","8:45-9:00",
"9:00-9:15","9:15-9:30","9:30-9:45","9:45-10:00", "10:00-10:15"),
Blue=c(2,4,6,4,11,3,4,6,3,3,9, 19),
Red=c(4,5,3,4,7,7,7,9,10,3,10, 12 ),
Yellow=c(1,0,6,8,1,6,4,5,3,1,3,2),
stringsAsFactors=FALSE)
DT
The code I tried is as below:
#load necessary libraries
library(ggplot2)
library(reshape2)
#melt data frame into long format
df <- melt(DT , id.vars = 'periods', variable.name = 'colors')
#create line plot for each column in data frame
ggplot(df, aes(periods, value)) +
geom_line(aes(colour = colors))
字符串
我想线对应不同的类别或列与不同的颜色和x轴对应的时间段。我还想总结一下4个“15分钟时段”来组成一个小时。
我该如何使用ggplot或plotly?
亲切地
1条答案
按热度按时间zu0ti5jz1#
我有一个解决方案,但我不得不承认这不是我最好的作品。第一步是准备时间段数据。为此,我将从
periods
列中提取开始时间。然后从结果POSIXct
-对象中获取小时值,并构造一个小时时间间隔字符串。然后,我们可以删除
startTime
、hour
和periods
-列,并在按interval
和名称分组并对值求和之前将 Dataframe 转换为长格式现在可以绘制此数据。使用间隔作为x轴,您需要为
geom_line()
指定group
-美学,因为我们在离散轴上绘制一条直线:型
x1c 0d1x的数据
编辑:
您可以跳过转换为时间对象,直接从periods字符串中获取小时:
型