当数据为 POSIXct 时,ggplotly() 不显示 geom_vline / geom_hline

2024-01-04

我正在尝试制作带有“时间标记”的图表。这些时间标记是某些日期的垂直线。时间数据为 POSIXct 格式。我想使用 Plotly 出色的交互界面并在其中使用我的 ggplot 对象。

问题是使用 ggplotly() 后这些“时间标记”不会显示。我已经尝试过plotly::add_segments()但它不起作用。 这是两个可重现的示例:

1. 对于非 POSIXct 数据,它工作得很好

# dummy dataset
df2 = data.frame(id = 1:10, measure = runif(10, 0, 20))
events2 = data.frame(number = c(2,3,8))
# ggplot graph
p2 = ggplot() + geom_line(data = df2, aes(x = id, y = measure))  +
  geom_vline(data = events2, aes(xintercept = events2$number), color = "red")
p2
# plotly graph that displays the geom_vline properly
ggplotly(p2)

2. 使用 POSIXct 数据无法显示正确的结果

# dummy dataset
df = data.frame(date = seq(as.POSIXct("2017-07-01", tz = "UTC", format = "%Y-%m-%d"),
                           as.POSIXct("2018-04-15", tz = "UTC", format = "%Y-%m-%d"),
                           "1 month"),
                measure = runif(10, 0, 20))
events = data.frame(date_envents = as.POSIXct(c("2017-10-12", "2017-11-12", "2018-03-15"), tz = "UTC", format = "%Y-%m-%d"))
# ggplot graph
p = ggplot() + geom_line(data = df, aes(x = date, y = measure))  +
  geom_vline(data = events, aes(xintercept = events$date), color = "red")
p
# plotly graph that does not display the geom_vline properly
ggplotly(p)

我看到了一些解决方法(例如:将垂直线添加到 ggplotly 图中 https://stackoverflow.com/questions/47754080/add-vertical-line-to-ggplotly-plot)但它很“复杂”。有没有更简单的方法来解决这个问题?

我正在使用带有 R 版本 3.5.0、RStudio 和以下软件包的 Windows 10:library(tidyverse) and library(plotly)


一个简单的解决方法是设置xintecept of the geom_vline为数字。

样本数据

df = data.frame(date = seq(as.POSIXct("2017-07-01", tz = "UTC", format = "%Y-%m-%d"),
                           as.POSIXct("2018-04-15", tz = "UTC", format = "%Y-%m-%d"),
                           "1 month"),
                measure = runif(10, 0, 20))
events = data.frame(date_envents = as.POSIXct(c("2017-10-12", "2017-11-12", "2018-03-15"), tz = "UTC", format = "%Y-%m-%d"))

code

p = ggplot() + geom_line(data = df, aes(x = date, y = measure))  +
  geom_vline(data = events, aes(xintercept = as.numeric(events$date)), color = "red")

result

ggplotly(p)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当数据为 POSIXct 时,ggplotly() 不显示 geom_vline / geom_hline 的相关文章

  • Dendextend:关于如何根据定义的组为树状图的标签着色

    我正在尝试使用一个名为 dendextend 的很棒的 R 包来绘制树状图并根据一组先前定义的组为其分支和标签着色 我已阅读您在 Stack Overflow 中的答案以及 dendextend vignette 的常见问题解答 但我仍然不
  • 在 R 格子包中微调点图

    我正在尝试为不同的数据集和不同的算法绘制一堆 ROC 区域 我有三个变量 方案 指定所使用的算法 数据集 是正在测试算法的数据集 以及 Area under ROC 我正在 R 中使用lattice库 命令如下 点图 方案 Area und
  • 在 R 中使用 lapply 绘制多个数据帧

    我正在尝试使用 lapply 函数绘制多个数据帧 每个数据帧一个图 但是尽管有关此主题的所有帖子我都找不到答案 因为我不断收到错误 图的输出列表为空 我的数据结构如下 df1 lt mtcars gt group by cyl gt tal
  • 只读取选定的列

    谁能告诉我如何仅读取下面每年数据的前 6 个月 7 列 例如使用read table Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2009 41 27 25 31 31 39 2
  • ddply 和aggregate 之间的区别

    有人可以通过以下示例帮助我了解聚合和 ddply 之间的区别 数据框 mydat lt data frame first rpois 10 10 second rpois 10 10 third rpois 10 10 group c re
  • 基于时间窗口的不规则时间序列的优化滚动函数

    有没有办法使用 rollapply 来自zoo包或类似的东西 优化功能 rollmean rollmedian等 使用基于时间的窗口计算滚动函数 而不是基于大量观察的函数 我想要的很简单 对于不规则时间序列中的每个元素 我想计算一个具有 N
  • 在 r 中的 group_by 之后建模后取消列表列的嵌套

    我想对所有组进行线性回归group by 将模型系数保存在列表列中 然后使用 unnest 扩展列表列 这里我用的是mtcars以数据集为例 注 我想用do here becausebroom tidy 不适用于所有型号 mtcars gt
  • 文本挖掘 pdf 文件/词频问题

    我正在尝试挖掘一篇具有丰富 pdf 编码和图表的文章的 pdf 我注意到 当我挖掘一些 pdf 文档时 我得到的高频词是 phi taeoe toe sigma gamma 等 它与某些 pdf 文档配合良好 但与其他文档配合使用时却得到这
  • 如何仅删除单括号并保留配对的括号

    你好 我亲爱的老师 R 用户朋友们 我最近开始认真学习正则表达式 最近我遇到了一种情况 我们只想保留配对括号 并省略未配对的 这是我的样本数据 structure list t1 c Book Pg 1 Website Online Jou
  • 如何获得所有大于x且有位置的数字?

    V lt c 1 3 2 4 2 3 1 X lt 3 pos lt V V X pos is 3 3 我需要的是所有 3 个的位置 I need 2 and 6 哪些职位是3 in V Use which pos lt which V 3
  • 如何在 R 中匹配多个 ggplot2 图中的调色板?

    自从被问到这个问题以来已经有一段时间了 但我知道一个事实 我很快就会提取新数据 我想弄清楚如何用这种技术来绘制它 看起来评论和答案中的人知道如何做到这一点 但我无法完全弄清楚所给我的内容 还有人想尝试一下吗 我正在尝试使用具有多个级别的因子
  • read_html(url) 和 read_html(content(GET(url), "text")) 之间的区别

    我正在看这个很棒的答案 https stackoverflow com a 58211397 3502164 https stackoverflow com a 58211397 3502164 解决方案的开头包括 library httr
  • python 相当于 R 中的 get() (= 使用字符串检索符号的值)

    在 R 中 get s 函数检索名称存储在字符变量 向量 中的符号的值s e g X lt 10 r lt XVI s lt substr r 1 1 X get s 10 取罗马数字的第一个符号r并将其转换为其等效整数 尽管花了一些时间翻
  • 以编程方式将字符串宽度值插入到 sprintf() 中

    我正在尝试以编程方式将字符串宽度值插入到sprintf 格式 期望的结果是 sprintf 20s hello 1 hello 但我想插入20在同一通话中即时进行 因此它可以是任何号码 我努力了 sprintf ds 20 hello 1
  • applyStrategy 错误

    我是R新手 最近运行后遇到以下错误applyStrategy函数来自quantstrat包裹 Error in eval expr envir enclos object signal not found Error in colnames
  • R:使用 tidyverse 将 NA 替换为 df 中的其他变量

    我想使用 tidyverse 替换 df 中的 NA 值 我想要的值应该从其他列中计算出来 input ID X1 X2 X3 A 0 96 NA 0 97 B 1 00 NA 1 01 C 0 98 0 03 NA A 1 00 NA 1
  • 如何绘制具有显着性水平的箱线图?

    前段时间问了一个关于绘制箱线图的问题Link1 https stackoverflow com questions 14604439 plot multiple boxplot in one graph 我有一些包含 3 个不同组 或标签
  • 如何修复 R 中 Kaplan Meier 图的风险表计算错误

    以下是一个数据帧 其中 6 个参与者中的每一个都有唯一的 record ID 我想绘制一个生存分析图 其中包含感兴趣事件的复发以及在时间间隔 tstart 到 tstop 内 暴露 药物剂量 数值变量 的时间依赖性协变量 每个参与者的最大
  • 在 ifelse() 语句内部和外部运行一行时的不同输出

    我正在尝试运行一个简单的命令 但不知道为什么在内部和外部运行它时输出不同ifelse 功能 函数条件评估为FALSE 所以输出应该完全相同 但是 单独运行时 输出为0 0 1 1 0 1 0 1 NA 根据需要 但是从ifelse 函数 输
  • 如何使用 dplyr 独立过滤每列的行

    我有以下内容 library tidyverse df lt tibble tribble gene colB colC a 1 2 b 2 3 c 3 4 d 1 1 df gt A tibble 4 x 3 gt gene colB c

随机推荐

  • 将 3D 极坐标转换为笛卡尔坐标

    我一直在对这种转换背后的数学进行大量搜索 到目前为止我能想到的最好的方法是 x sin horizontal angle cos vertical angle y sin horizontal angle sin vertical angl
  • Dafny 没有条件可以触发谓词

    我有以下用于 tic tac toe 游戏的 Dafny 代码片段 用于检查玩家 1 是否在棋盘上有获胜行 predicate isWinRowForPlayer1 board array2
  • 为什么我不能在 Groovy 脚本中的 @Grab 声明之后执行方法调用?

    我正在尝试构建一个 DSL 并使用 Global AST Transform 来完成它 该脚本正在编译groovyc很好 但我希望能够让用户使用 Grab Grape 来提取 JAR 并让它作为常规脚本立即执行 然后我发现我无法正确执行此操
  • 将字符串转换为长度为 1 的列表

    我创建了一个需要列表才能正常工作的方法 但是 您可以发送列表或简单的字符串 我想将该字符串转换为包含整个字符串作为元素的列表 例如 如果我有 I am a string 我想将其转换为 I am a string 我能够这样做 I am a
  • 使用准备好的语句进行选择查询时出现 SQL 异常

    StringBuilder sqlQry new StringBuilder sqlQry append SELECT LIB PATH append FROM OBJ append INNER JOIN SRC ON SRC MBR OB
  • JavaScript 闭包如何工作?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 您如何向了解 JavaScript 闭包所包含的概念 例如函数 变量等 但不了解闭包本身
  • R 中的按行排序

    我想知道如何使用 R 在 csv 中进行按行排序 这是我拥有的以下数据 Name English Math French John 56 78 86 Sam 79 97 86 Viru 93 44 34 我想对上述数据集执行按行排序 就像下
  • 如何在 xslt 中包含 javaScript 文件

    如何在 xslt 文件中包含 导入 javaScript 文件 库 如果你需要在转换中使用javascript 例如 它包含一组在转换中调用的扩展函数 您需要使用适当的扩展元素 例如
  • “使用未经检查或不安全的操作”[重复]

    这个问题在这里已经有答案了 为什么每次编译时都会出现 使用未经检查或不安全的操作 错误 代码有什么问题吗 我从本教程复制了完全相同的代码http www mkyong com java json simple example read an
  • 如何获取matplotlib树图中形状的坐标?

    我有工作树形图 我需要获取此树形图每个形状的坐标 例如之后将它们放入 GeoJSON 中 有没有任何函数可以帮助我解决这个问题 或者我将从这个树状图的 svg 版本中获取所有坐标 With ax squarify plot ax patch
  • 无法将大型 html5 画布 POST 到服务器?

    我有一块画布 你可以在上面作画 我需要将其内容保存到服务器 以便稍后可以恢复 为了做到这一点 我xMLHttpReq send the encodeURIComponent canvasP toDataURL via a xMLHttpRe
  • 在 OpenCV C++ 中绘制一条穿过斑点的曲线

    我试图画一条穿过给定斑点的线 下面是一个给定的例子 我想要一条在水平方向上穿过多个斑点的曲线 如下所示 就如例子 import cv2 import numpy as np img cv2 imread image jpg gray cv2
  • 从 Microsoft Groove 音乐应用获取当前播放的曲目信息

    我想在我自己的应用程序中获取 Microsoft Groove 应用程序中当前播放曲目的曲目信息 我说的是 Groove APP 而不是 REST Api 我的第一个方法是尝试获得Windows Media Playback Backgro
  • R Leaflet:将多个组分配给一个图层以过滤数据并更改表示的列

    我试图在 R 传单中找到一种方法来包含覆盖按钮 该按钮可以过滤掉数据中的组 我还需要包括单选按钮 用于切换数据中表示的列 我似乎无法找到使用 addLayersControl 函数在 R 传单中执行此操作的方法 我最初认为可以将多个组添加到
  • KeyDown :识别多个键

    How can I determine in KeyDown that CtrlUp was pressed private void listView1 KeyDown object sender KeyEventArgs e if e
  • 如何通过unicode where条件选择数据?

    我想获取位于 TableAdapter 中的以下 SQL 语句的数据库 SELECT FROM Student WHERE Chinese Name Param C 调用的示例代码如下 GetDataByChinese Name 你好 但我
  • 使用 Net/http 以 JSON 格式发布 Ruby 数据

    我有这个红宝石文件 require net http require json require uri test data newAcctJson type Credit Card nickname MoreTesting rewards
  • Material2 自动完成的值不显示

    我试图让自动完成功能显示对象的一个 参数 但保存另一个参数 到目前为止它似乎没有表现出来 代码来自 Material2 Autocomplete 网站 自动完成 https material angular io components co
  • 使用@Profile决定执行测试类

    根据https stackoverflow com a 33042872 4106030 https stackoverflow com a 33042872 4106030我们不应该使用 Profile让 spring 配置文件决定是否执
  • 当数据为 POSIXct 时,ggplotly() 不显示 geom_vline / geom_hline

    我正在尝试制作带有 时间标记 的图表 这些时间标记是某些日期的垂直线 时间数据为 POSIXct 格式 我想使用 Plotly 出色的交互界面并在其中使用我的 ggplot 对象 问题是使用 ggplotly 后这些 时间标记 不会显示 我