首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为timeseries数据中的不同日期添加多个vline

为timeseries数据中的不同日期添加多个vline
EN

Stack Overflow用户
提问于 2019-05-24 16:38:16
回答 1查看 755关注 0票数 1

我正在尝试绘制一个包含多个时间序列数据的折线图,其中每条线都显示了特定对象在同一开始日期和结束日期内一段时间内的销售趋势。我的数据集已经是一种“融化”的形式,看起来像这样:

代码语言:javascript
运行
AI代码解释
复制
'data.frame':   468 obs. of  3 variables:
 $ date                : Date, format: "2019-04-11" "2019-04-12" "2019-04-13" ...
 $ Object                : chr  "Object1" "Object2" "Object3" "Object 4" ...
 $ daily_sales: int  1 257 178 177 255 240 231 214 193 174 ...

我有一组需要竖线的日期,它们存储在日期数组imp.dates

当我尝试绘制单个vline时,它工作正常(使用以下代码):

代码语言:javascript
运行
AI代码解释
复制
ggplot(df, aes(x=date,
               y=daily_sales,
               colour=Object,
               group=Object)) +
  geom_line() + 
  geom_vline(aes(xintercept=imp.dates[1]),
            linetype=4,
            colour="black")

但是,当我尝试执行多个vlines

代码语言:javascript
运行
AI代码解释
复制
ggplot(df, aes(x=date,
                   y=daily_sales,
                   colour=Object,
                   group=Object)) +
      geom_line() + 
      geom_vline(aes(xintercept=imp.dates),
                linetype=4,
                colour="black")

我得到以下错误:

代码语言:javascript
运行
AI代码解释
复制
Error: Aesthetics must be either length 1 or the same as the data (40): xintercept

下面这些帖子我都没看过: 1. Multiple vlines in plot gives error, ggplot2 2. ggplot2: how to add text to multiple vertical lines (geom_vlines) on a time x-axis? 3. How to get a vertical geom_vline to an x-axis of class date?

3非常接近,但是我的x变量是Date类,而不是int类,所以似乎不能让它工作。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-24 16:56:49

您需要将imp.dates放入数据框中,并更改geom_vline()图层的数据。

以下是一些示例数据:

代码语言:javascript
运行
AI代码解释
复制
set.seed(2867)
df <- expand.grid(date = seq(as.Date("2019-01-01"), as.Date("2019-12-31"), by = 1L),
                  object = paste0("object", 1:4))
df <- transform(df, daily_sales = rpois(nrow(df), lambda = 100))

set.seed(1)
imp <- data.frame(date = sample(unique(df$date), 4))

在这里,我从这个系列中随机选择了4个日期作为重要日期,你可以这样做:

代码语言:javascript
运行
AI代码解释
复制
imp <- data.frame(date = imp.dates)

让第二个数据帧使用相同的变量名date是有帮助的,但我不认为这是必要的,只是有助于/更容易在你的头脑中解析。

现在,我们按照您的方式构建图(注意,我在代码中将Object更改为object )

代码语言:javascript
运行
AI代码解释
复制
ggplot(df, aes(x = date, y = daily_sales, colour = object, group = object)) +
  geom_line() + 
  geom_vline(data = imp,               ## 1
             aes(xintercept = date),   ## 2
             linetype = 4, colour = "black")

请注意,在添加geom_vline()层的##1行中,我们将该层的data参数设置为重要日期的数据帧imp。在## 2行中,我们指定imp中包含我们想要绘制的日期的变量的名称。其余的绘图代码与您原来的一样。

这会产生(乱七八糟的,它是随机数据):

但是现在它包含了4个用垂直线表示的选定的重要日期。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56296535

复制
相关文章
温故而知新,ggplot2 饼图的几点笔记
其实 ggplot2 并没有类似于 geom_pie() 这样的函数实现饼图的绘制,它是由 geom_bar() 柱状图经过 coord_polar() 极坐标弯曲从而得到的。 对于为什么 ggplot2 中没有专门用于饼图绘制的函,有人说:“柱状图的高度,对应于饼图的弧度,饼图并不推荐,因为人类的眼睛比较弧度的能力比不上比较高度(柱状图)。” 关于饼状图被批评为可视化效果差,不推荐在 R 社区中使用的文章在网络也有不少,感兴趣的可以去搜一下。
章鱼猫先生
2021/10/15
1.4K0
温故而知新,ggplot2 饼图的几点笔记
与 ggplot2 包相关的 109 种拓展包
该网站一共汇总了 109 种与ggplot2 包相关的拓展包,并且在不断更新中。拓展包与 ggplot2 包可以无缝连接。
庄闪闪
2022/04/08
7900
与 ggplot2 包相关的 109 种拓展包
R相关性图如何按比例显示相关系数
今天偶然从一篇paper里看到了一张R绘制的相关性图,跟以往看到的有些不一样。这张图里面不仅展示了相关系数,并且相关系数显示的大小跟相关系数是成比例的。这样做的好处是,让那些最显著相关的一目了然,而那些不怎么相关的就不那么显眼。这个引起了小编的兴趣,想自己也画一张这样的相关性图。
生信交流平台
2022/09/21
1.1K0
R相关性图如何按比例显示相关系数
C++核心准则​NL.7:使名称的长度与作用域的大小大致成比例
Rationale: The larger the scope the greater the chance of confusion and of an unintended name clash.
面向对象思考
2020/11/26
4060
教程 | OpenCV4中的极坐标变换
极坐标变换就是将图像在直角坐标系与极坐标系中互相变换,形式如图3-26所示,它可以将一圆形图像变换成一个矩形图像,常用于处理钟表、圆盘等图像。圆形图案边缘上的文字经过及坐标变换后可以垂直的排列在新图像的边缘,便于对文字的识别和检测。
OpenCV学堂
2019/12/06
4.1K1
教程 | OpenCV4中的极坐标变换
webgis中的比例尺实现
比例尺在地图中是一个非常重要的概念,有着辅助读图的作用。本文在ol框架下,实现webgis中的比例尺功能。
牛老师讲GIS
2021/12/06
6830
webgis中的比例尺实现
谷歌:Android 内存安全漏洞比例下降与使用 Rust 相关
根据谷歌安全消息,十多年来,内存安全漏洞一直占整个产品和整个行业漏洞的 65% 以上。但近期在 Android 上,内存安全漏洞显着减少,并且相关的漏洞严重性也有所下降。 “从 2019 年到 2022 年,内存安全漏洞的年度数量从 223 个下降到 85 个,”Android 安全工程师 Jeffrey Vander Stoep 在博客文章中说道。Jeffrey 表示,这种下降与放弃内存不安全编程语言的努力相吻合,这里的“内存不安全编程语言”指的是 C/C++。 从去年的 Android 12 开始,R
深度学习与Python
2023/03/29
4150
谷歌:Android 内存安全漏洞比例下降与使用 Rust 相关
ggplot2中 ggsave如何用?
这里面,用()将ggplot作图的代码括住,它会输出到屏幕上,使用%>%将其作为对象传递给ggsave,用.表示它,写作ggsave("plot3.png",.),即可。
邓飞
2021/01/12
4.6K0
css中如何做到容器按比例缩放
图片因为本身存在宽高比,所以设置一个值,另一个值自动也就根据真实的比例对应上,但是如果是视频呢?
用户1097444
2023/07/14
8210
css中如何做到容器按比例缩放
css中如何做到容器按比例缩放
图片因为本身存在宽高比,所以设置一个值,另一个值自动也就根据真实的比例对应上,但是如果是视频呢?
IMWeb前端团队
2019/12/03
1.7K0
css中如何做到容器按比例缩放
R可视乎|饼图
饼图(pie chart)被广泛地应用于各个领域,用于表示不同分类的占比情况,通过弧度大小来对比各种分类。饼图通过将一个圆饼按照分类的占比划分成多个切片,整个圆饼代表数据的总量,每个切片(圆弧)表示该分类占总体的比例,所有切片(圆弧)的加和等于100%。
庄闪闪
2021/04/09
1.5K0
弧度和角度的转换_角度与弧度的换算表格
这两天在看同事写的四叉树代码,当中用到了孤度和角度之间的转换,所以转载此文章进行了学习
全栈程序员站长
2022/09/20
1.1K0
pytorch中与维度相关的函数、方法
多个tensor向量在某个维度上进行堆叠。注意的是:stack只是torch的函数。
木又AI帮
2020/05/20
1.1K0
DAX中与计数相关的聚合函数
不问花开几许,只愿浅笑安然 除了求和,另一个日常工作中最常用到的聚合方式应该是计数了。DAX提供了一系列关于计数的函数。他们可以帮助我们计算表中有多少行或者某个值出现了多少次。 DAX中包含的计数函数有: COUNT()函数,对列中值的数量进行计数,除了布尔型; COUNTA函数,对列中值的数量进行计数,包含布尔型; COUNTBLANK()函数,返回列中空单元格的计数; COUNTROWS()函数,返回表中行的计数; DISTINCTCOUNT()函数,返回列中值的不重复计数,包含空单元格。 DISTI
博文视点Broadview
2023/04/04
4.3K0
DAX中与计数相关的聚合函数
Linux中几个与文档相关的命令
一、介绍 本文将介绍几个与文档相关的命令 软件环境: 物理机 Windows 8.0 虚拟机 VMware Workstation 12 Linux系统 CentOS 7.3 二、命令cat 命令ca
Zoctopus
2018/06/04
1.1K0
R语言ggplot2作图如何去掉图例中的NA
https://stackoverflow.com/questions/45493163/ggplot-remove-na-factor-level-in-legend
用户7010445
2021/07/12
4.5K0
R语言ggplot2作图如何去掉图例中的NA
曝光埋点方案:recyclerView中的item曝光逻辑实现
首先,客户端要考虑的就是只管调用api上报:上报item可见、上报item不可见。至于是否是有效曝光,就是公共埋点SDK(中台提供)去计算了。
胡飞洋
2020/07/23
5.9K0
曝光埋点方案:recyclerView中的item曝光逻辑实现
如何使Ubuntu的语言变成中文??
当我们打开Ubuntu系统后,一些英语稍差一点的同学是不是用这个系统用起来感觉有点吃力呢?要是Ubuntu系统会讲中文就好了。那如何让Ubuntu这个系统学会中文呢?接下来就有我来带你们一步步的让自己的Ubuntu系统学会中文吧!! ## (注意:可能有些步骤需要输入你的登录密码!!!)
种花家的奋斗兔
2020/11/13
4.3K0
如何使Ubuntu的语言变成中文??
点击加载更多

相似问题

ggplot2:极坐标中的连接点与直线2

11

打印与固定比例相关的值

22

计算与棒球相关的查询的比例

11

如何使图解极坐标图上0°的角度顺时针旋转?

53

R- ggplot2:极坐标与直线的连接点

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档