R - ggplot 根据日期在同一图表上绘制两条线

驼鹿

合并后,子集我的数据,并使用 this: 将 DATE 列转换为日期时间atms$DATE<-dmy_hms(as.POSIXct(atms$DATE,tz=Sys.timezone())),它看起来像这样:

    ATM                DATE DENOM_1 REMAIN_1 DENOM_2 REMAIN_2 Total
176    8 2020-09-13 19:00:00      50     1334     100     1494  2828
177    8 2020-09-13 19:01:00      50     1334     100     1494  2828
178    8 2020-09-13 19:02:00      50     1334     100     1494  2828
179    8 2020-09-13 19:03:00      50     1334     100     1494  2828
180    8 2020-09-13 19:04:00      50     1334     100     1494  2828
181    8 2020-09-13 19:05:00      50     1334     100     1494  2828
182    8 2020-09-13 19:06:00      50     1331     100     1493  2824
183    8 2020-09-13 19:07:00      50     1317     100     1487  2804
184    8 2020-09-13 19:08:00      50     1315     100     1471  2786
185    8 2020-09-13 19:09:00      50     1305     100     1468  2773
186    8 2020-09-13 19:10:00      50     1302     100     1459  2761
187    8 2020-09-13 19:11:00      50     1278     100     1428  2706
188    8 2020-09-13 19:12:00      50     1275     100     1421  2696
189    8 2020-09-13 19:13:00      50     1238     100     1392  2630
190    8 2020-09-13 19:14:00      50     1204     100     1322  2526
191    8 2020-09-13 19:15:00      50     1153     100     1236  2389
192    8 2020-09-13 19:16:00      50     1109     100     1140  2249
193    8 2020-09-13 19:17:00      50     1045     100     1047  2092
194    8 2020-09-13 19:18:00      50      974     100      974  1948
195    8 2020-09-13 19:19:00      50      932     100      868  1800
196    8 2020-09-13 19:20:00      50      871     100      781  1652
197    8 2020-09-13 19:21:00      50      841     100      720  1561
198    8 2020-09-13 19:22:00      50      829     100      705  1534
199    8 2020-09-13 19:22:40      50      825     100      696  1521
200    8 2020-09-13 19:23:00      50      825     100      696  1521
7576   8 2020-09-20 19:00:00      50     1097     100      698  1795
7577   8 2020-09-20 19:01:00      50     1097     100      698  1795
7578   8 2020-09-20 19:02:00      50     1097     100      698  1795
7579   8 2020-09-20 19:03:00      50     1097     100      698  1795
7580   8 2020-09-20 19:04:00      50     1097     100      698  1795
7581   8 2020-09-20 19:05:00      50     1097     100      698  1795
7582   8 2020-09-20 19:06:00      50     1085     100      691  1776
7583   8 2020-09-20 19:07:00      50     1085     100      689  1774
7584   8 2020-09-20 19:08:00      50     1068     100      680  1748
7585   8 2020-09-20 19:09:00      50     1064     100      669  1733
7586   8 2020-09-20 19:10:00      50     1039     100      647  1686
7587   8 2020-09-20 19:11:00      50     1014     100      622  1636
7588   8 2020-09-20 19:12:00      50     1007     100      600  1607
7589   8 2020-09-20 19:13:00      50      991     100      578  1569
7590   8 2020-09-20 19:14:00      50      975     100      552  1527
7591   8 2020-09-20 19:15:00      50      880     100      473  1353
7592   8 2020-09-20 19:16:00      50      816     100      403  1219
7593   8 2020-09-20 19:17:00      50      757     100      341  1098
7594   8 2020-09-20 19:18:00      50      707     100      290   997
7595   8 2020-09-20 19:19:00      50      680     100      256   936
7596   8 2020-09-20 19:20:00      50      644     100      150   794
7597   8 2020-09-20 19:21:00      50      630     100      139   769
7598   8 2020-09-20 19:21:51      50      623     100      110   733
7599   8 2020-09-20 19:22:00      50      623     100      110   733
7600   8 2020-09-20 19:23:00      50      623     100      110   733

我想在同一图表上的一行中绘制第 13 天的总数,并在另一行中绘制第 20 天的总数。最初,数据被分成两个 .dat 文件,每个日期一个,我尝试仅绘制第 13 天的图形ggplot(),使用将其添加到空geom_line(),然后将geomline()第 20 天的独立添加到相同的ggplot,每行都有自己的“ X”轴在其“aes”内如下:geom_line(data=myData,aes(x=correspondingDate,y=Total)),但我只看到一条线代表总数,另一条线是隐藏的;然后我尝试了两条线的“全局”X 轴,通过使用ggplot(data=myData,aes(x=date13))然后geom_line(data=myData,y=totalCorrespondingDate))为每条线代表每一天,但我只看到两条垂直线,一条向左,另一条向右,X 轴显示奇怪日期。

我应该将数据按天分开吗?如果是,我如何“绘制”我的 X 轴以包括这两天?如果不是,当列是日期时间时,我如何告诉 ggplot 仅根据日期来分隔数据?我知道如何在基本级别使用融化功能,但我不知道如何告诉它只需要一天中的一天来制作“分区”。

乔恩·斯普林

我建议创建两个新变量,一个用于跟踪行所属的日期,另一个用于显示一天中的时间,但使用一个公共日期例如:

library(tidyverse)
df  %>%
  mutate(DATE_DAY = floor_date(DATE, "day"),   # day of the row
         DATE_TIME = min(DATE_DAY) + (DATE - DATE_DAY)) %>%   # datetime shifted to 1st day (arbitrarily)
  ggplot(aes(DATE_TIME, Total, color = DATE_DAY, group = DATE_DAY)) +
  geom_line()

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用ggplot2在同一图中绘制不同年份的两条线

使用R使用ggplot2画两条线并放下一条线

在ggplot图中绘制两条线

如何在Ggplot的一个图表上有两条线

ggplot:一张图上的两条线,日期有中断(y 轴)

Ggplot,如何在同一个图表中有两条线并让它产生一个图例

线图ggplot - 两条线,来自同一站点的数据点/秒

R:使用 ggplot 在同一图形上绘制多条线

如何使用ggplot2在两条线之间绘制密度图?

ggplot2绘制两条线之间的角度

如何使用ggplot&R在同一张图表上绘制不同类型的多条线

在R Studio中的图表中创建两条线

R-qplot-绘制来自不同数据集的两条线

ggplot2 每组仅包含一个观察值——在一张图上绘制两条线

使用 R 中的 facet_wrap 或 facet_grid 在左侧面板的一个图形上绘制两条线,并在右侧面板上绘制它们的差异

在 R 中使用 abline 在图形上添加两条线

R:找到两条线的交点

在R中找到两条线的相交

在R ggplot中的数据点中的两点之间绘制一条线

我想在已经构造了[R]的ggplot上绘制一条特定的(给定的x,y)线。

使用ggplot在一张图中为带有不同标签的分组数据绘制两条线图

如何使用ggplot创建两条线和散点图

ggplot2:在两条线的交点处添加点

如何在ggplot2中为两条线之间的区域着色/着色?

使用绘图词典在同一图形上绘制两条线

使用 ggplot() 叠加两条线图的问题

R ggplot按日期分组,并从同一日期时间开始在x轴上绘制时间

我可以使用哪个R函数找到两条线的交点?

创建函数以检查点是否落在R中的两条线之间