首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在R中实现具有开始日期、结束日期和“中间日期”标记的时间线?

在R中实现具有开始日期、结束日期和“中间日期”标记的时间线,可以使用ggplot2包和geom_segment函数来实现。下面是一个完整的答案:

首先,确保已经安装了ggplot2包,如果没有安装可以使用以下命令进行安装:

代码语言:txt
复制
install.packages("ggplot2")

接下来,加载ggplot2包:

代码语言:txt
复制
library(ggplot2)

假设我们有一个数据框df,其中包含开始日期、结束日期和中间日期的信息。数据框的结构如下:

代码语言:txt
复制
df <- data.frame(start_date = c("2022-01-01", "2022-02-01", "2022-03-01"),
                 end_date = c("2022-01-15", "2022-02-15", "2022-03-15"),
                 middle_date = c("2022-01-08", "2022-02-08", "2022-03-08"))

接下来,我们可以使用ggplot函数创建一个空白的绘图对象,并使用geom_segment函数添加时间线的线段。代码如下:

代码语言:txt
复制
ggplot() +
  geom_segment(data = df, aes(x = as.Date(start_date), xend = as.Date(end_date),
                              y = 0, yend = 0, color = "Time Line")) +
  geom_point(data = df, aes(x = as.Date(middle_date), y = 0, color = "Middle Date"),
             size = 3) +
  scale_color_manual(values = c("Time Line" = "blue", "Middle Date" = "red"),
                     guide = guide_legend(title = NULL)) +
  labs(x = "Date", y = NULL, title = "Time Line") +
  theme_minimal()

解释一下代码:

  • geom_segment函数用于添加时间线的线段,其中xxend参数指定了开始日期和结束日期,yyend参数指定了线段的位置,color参数指定了线段的颜色。
  • geom_point函数用于添加中间日期的标记点,其中x参数指定了中间日期的位置,y参数指定了标记点的位置,color参数指定了标记点的颜色,size参数指定了标记点的大小。
  • scale_color_manual函数用于设置线段和标记点的颜色,values参数指定了颜色的取值,guide参数用于设置图例的标题。
  • labs函数用于设置图表的标题和坐标轴的标签。
  • theme_minimal函数用于设置图表的主题。

运行以上代码,就可以在R中实现具有开始日期、结束日期和“中间日期”标记的时间线。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Power BI如何在表格生成纵向折线图?

在表格,每一行独立存在,上一行内容下一行没有交集,中间有一根看不见线把每一行隔离开来。 但今天介绍这一个技巧突破了这一限制,表格上下行之间产生了关联,这就是纵向折线图。...前期介绍了独立纵向折线图制作(pbix此处下载https://t.zsxq.com/07JQzbQRj),今天展示如何在Power BI内置表格矩阵实现类似的效果。...实现原理是DAX+SVG组合。上图展示了表格显示效果,使用Power BI内置折线图画个横排效果,大家可以看到形状是一样。 每一行折线形状由上一行数据、本行数据下一行数据共同决定。...比如,上一行数据50,本行数据20,下一行数据80,我们大体可以判断本行折线走向大致如下图所示: 如何在计算本行折线时候,让图表度量值知道上一行数据下一行数据分别是多少?...这条折线还有第二种用法,放入条件格式图标,下图右侧是条件格式模式: 有读者可能会有疑问,日期具有连续特性,非连续维度是否也可以同样操作?答案是可以

2.9K20

【iOS】基于Realm数据库记账软件--时间线模块(三)

1、前言 接下来,我们将开始搭建时间线界面。该模块是界面展示中最大难点--时间线布局。那么,我们先来看看效果图,因为gif上传后,动不了。...2、时间线搭建 2.1、前言 这个时间线界面是仿照口袋记账,一开始没有头绪时候,就把自己手机越狱了,然后通过Reveal进行查看其布局,具体Reveal用法,可以看我之前博客。...这里写图片描述 从上图不难看出,一共分为两种Cell: 显示账单信息Cell,红框所示,显示账单类型,金额 显示当天日期一个汇总,蓝框所示,显示该日一个总收入总支出 3、数据准备 3.1、模型设计...,这里实现有点繁琐,但是逻辑是不难。...,具体实现方式请看MPBillTableViewController上述两个scrollView代理方法 5、总结 该时间线实现共有两个难点: 难点一,数据查询后,生成业务需求模型 难点二,头部

91740
  • 拥抱Java8日期时间类LocalDate、LocalDateTime详解

    一些日期时间类还表现出相当差API设计。例如,年份java.util.Date从1900开始,月份从1开始,天从0开始,这不是很直观。...如果你只需要日期或时间那么有一些数据就没啥用。在新Java 8日期时间被明确划分为 LocalDate LocalTime,LocalDate无法包含时间,LocalTime无法包含日期。...ZoneOffset offset = ZoneOffset.of("+2:00"); 7 时区类 ZonedDateTime是具有完全限定时区日期时间。这样可以解决任何时间点偏移。...有一个MonthDay类,其中包含一对MonthDay,对于表示生日非常有用。该YearMonth类涵盖了信用卡开始日期到期日期用例以及人们没有指定日期场景。...这些类型可以映射到特定于供应商数据库类型或ANSI SQL类型。 12 总结 Java SE 8在java.time附带一个新日期时间API,为开发人员提供了大大改善安全性功能。

    1.4K30

    Verilog代码设计风格

    : wire SysRst_n; wire FifoFull_n; (3)经过锁存器锁存后信号 经过锁存器锁存后信号,后加下划线字母r,与锁存前信号区别。...: 信号CpuRamRd 信号,经锁存后应命名为CpuRamRd_r。 低电平有效信号经过锁存器锁存后,其命名应在_n 后加r。...此外,在注释说明,需要注意以下细节: � 在注释应该详细说明模块主要实现思路,特别要注明自己一些想法,如果有必要则应该写明对想法产生来由。...� 在注释详细注明函数适用方法,对于输入参数要求以及输出数据格式。 � 在注释要强调调用时危险方面,可能出错地方。 � 对日期注释要求记录从开始编写模块到模块测试结束之间日期。...Tab 键进行缩进,每加深一层缩进一个Tab;在endmodule,endtask,endcase 等标记一个代码块结束关键词后面要加上一行注释说明这个代码块名称。

    1.5K80

    免费JS甘特图组件dhtmlxgantt

    默认布局为左侧是任务信息列表,右侧是甘特图时间线,自定义布局可在右侧、下方显示更多信息。 自定义布局可显示资源列表资源甘特图时间线,但仅Pro版本可用。...grid - 定义甘特图表格,显示任务表格ID为grid; timeline - 定义时间线,显示任务时间线ID为"timeline"; scrollbar - 滚动条(表格时间线)....但可以通过配置event,实现可视化排程,在甘特图时间线任务grid添加任务、添加任务链接、修改任务属性,可拖拽来更新任务时间等。...,显示一个任务详细并带有删除编辑按钮浮窗 tooltip: true 提示 undo: true 取消、重做 marker: true 竖直标记线,高亮当前日期或特定日期 常见模板API date_grid...里程碑 type:gantt.config.types.milestone project,任务开始结束时间为自任务最早开始时间最晚结束时间,其自身定义 start_date,

    17.3K31

    Android项目实战(二十九):酒店预定日期选择

    )、如果“开始日期” “结束日期” 不同,且“结束日期” 晚于 “开始日期”    (3)、如果“结束日期” 早于 “开始日期” ,重置当前 日期 为 “开始日期” 3、选择开始日期” “结束日期”...,根据是否开始结束中间日期来显示 相应选中背景 代码实现: 1、代码框架总览 2、实体类 (1)、月份类,外部RecyclerView数据源实体类 /** * Created by xqx on...用于标记  开始日期结束日期每个日子进行对比,显示不同背景色 public static DayTimeEntity startDay; //开始日期 public static...} });   3、根据每个item年月日,在外部列表位置,在内部列表位置 信息 开始日期”、“结束日期信息对比,设置相应背景色 if (MonthTimeActivity.startDay.getYear...另:强制当天作为开始日期,只选择结束日期,可以调整结束日期开始日期间隔时间限制 GitHub: 仿美团酒店预订日期选择(强制当天作为开始日期)

    1.4K40

    Android项目实战(二十九):酒店预定日期选择

    )、如果“开始日期” “结束日期” 不同,且“结束日期” 晚于 “开始日期”    (3)、如果“结束日期” 早于 “开始日期” ,重置当前 日期 为 “开始日期” 3、选择开始日期” “结束日期”...,根据是否开始结束中间日期来显示 相应选中背景 代码实现: 1、代码框架总览 2、实体类 (1)、月份类,外部RecyclerView数据源实体类 /** * Created by xqx on...用于标记  开始日期结束日期每个日子进行对比,显示不同背景色 public static DayTimeEntity startDay; //开始日期 public static...} });   3、根据每个item年月日,在外部列表位置,在内部列表位置 信息 开始日期”、“结束日期信息对比,设置相应背景色 if (MonthTimeActivity.startDay.getYear...另:强制当天作为开始日期,只选择结束日期,可以调整结束日期开始日期间隔时间限制 GitHub: 仿美团酒店预订日期选择(强制当天作为开始日期)

    1.5K20

    基于Flutter手把手教你实现一个日期选择(日历形式)

    今天主题是,在flutter里面实现一个日期选择自定义控件,或者说自定义组件,考虑到这个日期自定义组件通用性,我们将会采用插件开发开始来做,这样就可以发布到 pub.dev 上,供广大flutter...Flutter,创建自定义组件(也称为自定义widget)主要有三种方式:通过组合其他组件,自绘实现RenderObject。...通过组合其他组件:这是创建自定义组件最基本最常见方式。Flutter框架提供了大量内置组件,文本、图像、按钮等。你可以通过组合这些内置组件来创建自己自定义组件。...,上一个月需要有一个label展示当前展示日历在何年何月简单起见,设置初始化时默认选择区间开始,区间结束都是当天编写区间选中规则,具体可以看下面的流程图还要考虑选中部分渲染,既如何标记区分出选中...// 如果没有选中结束日期,或者选中开始日期晚于当前选中日期 if (selectedDate.isBefore(_selectedStartDate)) { //比最左区间日期还小

    2.2K50

    Power BI 卡片图添加折线首尾标记

    《Power BI卡片图添加趋势图》介绍了如何在卡片图添加折线趋势,《Power BI 卡片图添加动画折线趋势》介绍了如何添加折线出场动画 图表度量值如下,度量值日期、指标替换为自己模型对应数据可复用...折线首尾标记= VAR XMinDate = MIN ( '日期表'[Date] ) VAR XMaxDate = MAX ( '日期表'[Date] ) VAR MaxWidth =...300 VAR MaxHeight = 80 VAR Space_X = MaxWidth * 0.1 VAR Space_Y = MaxHeight * 0.1 VAR Mark_r = MaxWidth...SVG_Table, [MarkColor] BLANK () ), "<circle cx='" & [X] & "' cy='" & MaxHeight - [Y] & "' r=...效果如下图,当然你也可以选择仅显示开始标记或者结尾标记,把上面IF语句简化下即可,颜色也可自行替换。 更丰富效果仅在知识星球分享,例如带有箭头,箭头方向随数据变化: 例如虚线:

    22920

    软件工程 怎样建立甘特图

    最初,“开始时间”“完成时间”列日期反映了您为项目指定开始日期。要更改该日期,请单击单元格,然后键入新日期。 “工期”列将随您键入开始日期完成日期自动更新。...时间刻度始于您指定开始日期,止于您指定完成日期。当您添加任务开始日期结束日期或工期时,任务栏将出现在时间刻度下面的区域中,且该区域将展开。...要缩小视图,请在“视图”菜单上指向“缩放比例”,然后单击所需缩放级别。 时间刻度 时间刻度是主要时间单位次要时间单位刻度,它将从项目的开始日期延伸到结束日期。...您可以定义时间刻度时间单位、开始日期结束日期以及非工作日。​ image.png ​您可以滚动至时间刻度上特定日期或任务,还可以更改时间刻度区域宽度并显示更多日期。...目的 采取操作 更改开始日期/或结束日期 在甘特图中,右键单击时间刻度任何部分,然后单击快捷菜单日期选项”。

    5K20

    恐怖活动时间线可视化(转)

    中间部分热力图表示每年每天恐怖事件数量,颜色越深数量越多;上方柱状图表示每年恐怖事件总数量,其中2014年便发生了16818起恐怖事件;下方柱状图表示每年受害者中伤者死者数量,其中2014年受害者共计...一个明显趋势是,近几年恐怖活动频次受害者人数都迅速增长。需要注意一点,以上两者在1990年至2000年期间曾得到控制,但不知为何在最近几年又卷土重来且势头更为强烈。 ?...一年哪天最危险 从以上热力图中可以明显看出恐怖活动日益猖獗整体趋势,但不便比较同一年内不同日期频次规律。...我们不禁会问,一年365天哪一天最容易发生恐怖事件(历史数据这一天发生恐怖事件次数最多)? 在下图中,横轴表示日期,纵轴表示该天发生恐怖事件次数,几个特殊日期用不同颜色进行标注。...各恐怖组织在y轴位置是根据其时间线特征确定具有相似时间线恐怖组织被聚合在一起,这也是热力图中出现矩形块原因。如果根据事件发生区域(即y轴上颜色)聚合,最后热力图可能会变得杂乱无章。

    72730

    Java SE8 日期时间API

    时间线 时间单位是以秒为单位,是从地球自转推导出来。地球自转一周需要24个小时,即24 x 60 x 60 = 86400秒。但是地球有轻微颤动,所以需要更加精确定义。...在Java,Instant表示时间线某个点。 被称为“新纪元”时间线原点被设置为穿过格林威治皇家天文台本初子午线所处时区1970年1月1日午夜。...DayOfWeek枚举具有便捷方法plusminus,以7为模型计算星期日期。 例如,DayOfWeek.SATURDAY.plus(3)会产生DayOfWeek.TUESDAY。...(weekday) 从给定日期开始下一个或上一个给定星期日期 dayOfWeekInMonth(n, weekday) 月份n个weekday lastInMonth(weekday) 月份最后一个...面向人类可读日期时间可以使用Locale相关格式器。 对于日期时间而言,有4Locale相关格式化风格,即SHORT、MEDIUM、LONGFULL。

    1.5K30

    全网最权威Java8日期时间类LocalDate、LocalDateTime详解

    一些日期时间类还表现出相当差API设计。例如,年份java.util.Date从1900开始,月份从1开始,天从0开始,这不是很直观。...如果你只需要日期或时间那么有一些数据就没啥用。在新Java 8日期时间被明确划分为 LocalDate LocalTime,LocalDate无法包含时间,LocalTime无法包含日期。...ZoneOffset offset = ZoneOffset.of("+2:00"); 7 时区类 ZonedDateTime是具有完全限定时区日期时间。这样可以解决任何时间点偏移。...有一个MonthDay类,其中包含一对MonthDay,对于表示生日非常有用。该YearMonth类涵盖了信用卡开始日期到期日期用例以及人们没有指定日期场景。...这些类型可以映射到特定于供应商数据库类型或ANSI SQL类型。 ? 12 总结 Java SE 8在java.time附带一个新日期时间API,为开发人员提供了大大改善安全性功能。

    1.5K10

    Notion初学者指南

    Cmd/Ctrl + Shift + R:重新加载当前页面 Cmd/Ctrl + Shift + S:保存更改到当前页面 使用日历 日历是追踪截止日期重要事件有效方法。...例如,要计算两个日期之间差异,可以使用公式:结束日期 - 开始日期 可以使用公式在截止日期临近时创建自动提醒,或在截止日期临近时自动将任务添加到待办清单。...CONCATENATE():将两个或多个列文本组合在一起 LEFT():从列文本开头提取特定数量字符 RIGHTO():从列文本末尾提取特定数量字符 MID():从列文本中间提取特定数量字符...标记任务完成以追踪进度。 为任务添加到期日期以提醒您截止时间。 在任务列表创建“优先级”列来定义最重要任务。 使用颜色来区分任务类型或重要性。...使用自定义模板进行重复任务项目 信息管理 使用数据库将信息组织成表格,具有自定义字段高级筛选功能。 在数据库添加自定义字段以组织信息。 在数据库添加行来填充每列信息。

    80831

    详述 Java 语言中格式化输出

    下面列出常见标记标记 目的 举例 + 打印正数负数符合 +12345.6 ( 将负数括在括号内 (12345.68) , 添加分组分隔符 12,345.7 0 数字前面用 0 补位 00123.45...,%tc表示输出完整日期时间。...在这里,使用以t开始,以下表任意字母结束两个字母格式,此外,下面基本全部列出了关于日期与时间转换符: 转换符 类型 举例 c 完整日期时间 星期二 三月 28 11:00:52 CST 2017...F ISO 8601 日期 2017-03-28 D 美国格式日期(月/日/年) 03/28/2017 T 24 小时时间 11:00:52 r 12 小时时间 11:00:52 am R 24 小时时间没有秒...如果需要多次对日期操作才能实现对每一部分日期进行格式化目的就太 low 啦!因此,咱们可以采用一个格式化字符串,指出要被格式化“参数索引”。索引必须紧跟在%后面,并以$终止。

    96720

    Power BI窗口函数应用于图表设计

    OFFSET、INDEX、WINDOW分别实现了单行相对定位、单行绝对定位任意范围相对定位及绝对定位。以下以纵向折线图为例进行讲解。...比如,上一行数据50,本行数据20,下一行数据80,我们大体可以判断本行折线走向大致如下图所示: 如何在计算本行折线时候,让图表度量值知道上一行数据下一行数据分别是多少?...标记为图像URL,拖入表格。...这条折线还有第二种用法,放入条件格式图标,下图右侧是条件格式模式: 有读者可能会有疑问,日期具有连续特性,非连续维度是否也可以同样操作?答案是可以。...WINDOW需要指明定位范围,例如上一行(度量值offsetlast)定位起点终点都是-1,REL表示相对偏移。

    1.9K30

    Go语言中常见100问题-#60 Misunderstanding Go contexts

    截止日期 截止日期是指通过下面的方式确定特定时间点: time.Duration:从现在开始持续时间值,例如250毫秒 time.Time:一个具体日期时间,例如 2023-02-07 00:00...另一个例子是HTTP中间件,中间件就是在服务请求之前执行中间函数。如下图所示。 在上图中,请求在到达处理handler之前需要经过两个中间件Middleware1Middleware2处理。...这个示例展示了如何在具体Go应用程序中使用带值上下文。 通过前面的介绍,我们已知道如何创建一个上下文来携带截止日期,取消信号以及键值信息。我们可以将这个上下文传递给其他带有context参数库。...函数从通道ch持续接收消息,还有一个参数context表明该handler是上下文感知,当上下文结束时直接返回。...在实际Go程序,context.Context无处不在,无论是标准库还是在第三方库,均有它身影。正如前面提到,上下文可以携带截止日期、取消信号键值信息。

    77840

    java8日期API总结(JSR310)

    日期时间API将日期时间分开为LocalDateLocalTime; 既有日期又有时间,则使用 LocalDateTime; 改善了jdkTimeZone,使用更优雅ZoneId; 增加了 Instant...概念,可以理解为时间线一个瞬间; 很重要,jsr310类都是线程安全。...Instant LocalDateTime Instant LocalDateTime区别在于,前者是时间线一个绝对时刻,而LocalDateTime是Instant在不同时区一个时间表示...: ChronoUnit days = ChronoUnit.DAYS; Chronology 历法,实现了常见一些历法。...时间与量计算 一个时间类型,与一个量计算,计算结果仍是个时间。 ,计算一个时间对应几天前,几小时后时间。 如果要得到本月第一天日期,那么以前我们需要这么做。

    98520

    数据库数据挖掘知识点总结(Microsoft 时序算法)

    这里面有几列数据,其实内容挺简单,我们来看,有自行车品牌地区、时间线、销售数量、销售额度、年、月、报告日期。...看来这些数据开始日期真是从05年7月份开始,然后到08年6月结束,而且这之间每个月份数据都是连续,也就是说从开始结束连续每个月都有值,我们向下面拖。 ?...的确,下面的这几种商品是从07年7月份开始产生销售,结束日期都是到08年6月份结束。...经过上面的分析,其实这种表数据是满足我们Microsoft时序算法数据要求,其中存在连续时间轴维度,只是有几种产品销售开始日期不是全部从开始日期开始,对于这种情况时序算法是允许,只要保证在我们时间轴维度每一个序列都有统一结束日期...通过点击图表中间点击线,我们可以分析这款自行车在这个两个地区一年销售峰值为5月12月,也就是所谓旺季...这没啥特别的对吧,5月大春天...嗯?

    1.5K100

    【干货】Oracel存储过程写报表实战

    解决思路 首先根据客户要求报表我们先创建一个临时中间表,用于处理横向数据问题。 根据客户输入一个日期参数,我们计算出输入日期所对应开始日期结束日期。...代码实现 1.首先根据客户要求报表我们先创建一个临时中间表,用于处理横向数据问题。 中间用法可以看《Oracle临时表使用》这一篇中有详细讲解。 ? ?...2.根据客户输入一个日期参数,我们计算出输入日期所对应开始日期结束日期。 ?...---- 4.然后先在中间表里加入所有的店铺基本信息。 ? 注意上面的图这张图中1,2是标红框,这是为了最后我们查询时候用itemno进行排序,这样开始日期结束日期肯定会显示在第一行了。...---- 5.计算对应商户周租金。 周租金我们用计算方法是能过数据表里获取到对应开始结束日期租金,除去开始结束日期天数,再乘7为一周。 ? ---- 6.更新商户这周每天销售 ?

    1.5K41
    领券