早上好,我有一个数据集,其中包含过去一个月中一周中每一天每一小时的值,我想将本周的值与前一周的值进行比较,并将其放在图表上。 我使用以下代码创建日期格式;
Failed to initialize NVML: Insufficient Permissions
和
WeekDate <- seq(from=as.POSIXct("2018-09-19 0:00", tz="UTC"),
to=as.POSIXct("2018-09-25 23:00", tz="UTC"), by="hour")
我将其与值合并(我们可以使用y1 =(0:167)和y2 =(1:168)作为虚拟值)。
我曾经阴谋获取图表
PreviousWeekDate <- seq(from=as.POSIXct("2018-09-12 0:00", tz="UTC"),
to=as.POSIXct("2018-09-18 23:00", tz="UTC"), by="hour")
我想做的是得到如下图所示的图; Week plot
而不是我得到的那个; Non Overlapped Graph
我想在X轴上说;星期一HH:MM,因此我可以直接将一个值与另一个值进行比较,从而表明我们在看哪个时间。我希望它们重叠。就像将日期转换为通用的Week,而没有实际的月/日。
我还没有找到任何东西,将不胜感激。 谢谢
答案 0 :(得分:0)
可以通过隐藏工具提示中的“ time_norm”数据来对其进行清理,但是我认为它基本上可以满足您的需求。
library(tidyverse); library(lubridate); library(plotly)
df <- data_frame(
time = seq(from=as.POSIXct("2018-09-12 0:00", tz="UTC"),
to=as.POSIXct("2018-09-25 23:00", tz="UTC"), by="hour")) %>%
rowid_to_column(var = "y") %>%
mutate(week = if_else(time > max(time) - ddays(7), "This week", "Last week"),
time_norm = if_else(time > max(time) - ddays(7), time, time + ddays(7)))
ggplotly(
{
ggplot(df, aes(time_norm, y, color = week, label = norm)) +
geom_line()
}