带工具提示的 Ggplotly 在使用 geom_rect() 时出现问题

2024-02-26

我正在尝试在 ggplotly 图中绘制一些数据。 x 轴包含日期。 Ggplotly 不能很好地处理日期,因为当我将鼠标悬停在某个点上时,日期会显示为数字。 我通过设置如下所示的工具提示解决了这个问题。

一些示例数据:

x <- data.frame(Date = as.Date(seq(Sys.Date(), Sys.Date() + 29, by = "days")), Amount = seq(-10000, 19000, by = 1000),
            stringsAsFactors = FALSE)

剧情:

ggplotly(ggplot(x, aes(x = Date, y = Amount, group = 1, text = paste("Date: ", Date, "<br>Amount: ", Amount))) + geom_line() + geom_point() 
     , tooltip = "text")

现在我想使用 geom_rect() 根据 y 轴的值获取一些背景颜色。这给我带来了问题,因为矩形似乎放置在 geom_line() 的顶部。另外,矩形也由 ggplotly 标记,我也不想要。 这是我尝试的代码(当我不使用自定义工具提示时,背景颜色工作正常,但标签中的日期出现问题):

ggplotly(ggplot(x, aes(x = Date, y = Amount, group = 1, text = paste("Date: ", Date, "<br>Amount: ", Amount))) + geom_line() + geom_point() 
     +
       geom_rect(aes(xmin = as.Date(Sys.Date()),
                     xmax = as.Date(Sys.Date() + 30),
                     ymin = 10000, ymax = max(max(x$Amount) + 1000, 11000), fill = "1")) +
       geom_rect(aes(xmin = as.Date(Sys.Date()),
                     xmax = as.Date(Sys.Date() + 30),
                     ymin = 0, ymax = 10000, fill = "2")) +
       geom_rect(aes(xmin = as.Date(Sys.Date()),
                     xmax = as.Date(Sys.Date() + 30),
                     ymin = min(min(x$Amount) - 1000, 0), ymax = 0, fill = "3"))
     +
       scale_fill_manual(values = alpha(c("green", "orange", "red"), 0.2))
     , tooltip = "text")

Result https://i.stack.imgur.com/YwTZF.png

任何帮助将不胜感激,谢谢!

EDIT:

以下代码导致 geom_rect() 工作:

ggplotly(ggplot(x, aes(x = Date, y = Amount)) + geom_line() + geom_point() 
     +
       geom_rect(aes(xmin = as.Date(Sys.Date()),
                     xmax = as.Date(Sys.Date() + 30),
                     ymin = 10000, ymax = max(max(x$Amount) + 1000, 11000), fill = "1")) +
       geom_rect(aes(xmin = as.Date(Sys.Date()),
                     xmax = as.Date(Sys.Date() + 30),
                     ymin = 0, ymax = 10000, fill = "2")) +
       geom_rect(aes(xmin = as.Date(Sys.Date()),
                     xmax = as.Date(Sys.Date() + 30),
                     ymin = min(min(x$Amount) - 1000, 0), ymax = 0, fill = "3"))
     +
       scale_fill_manual(values = alpha(c("green", "orange", "red"), 0.2)))

Result https://i.stack.imgur.com/tyiCq.png


你可以试试这个:

ggplotly(ggplot() +
           geom_rect(data = x, aes(xmin = as.Date(Sys.Date()),
                         xmax = as.Date(Sys.Date() + 30),
                         ymin = 10000, ymax = max(max(x$Amount) + 1000, 11000), fill = "1")) +
           geom_rect(data = x, aes(xmin = as.Date(Sys.Date()),
                         xmax = as.Date(Sys.Date() + 30),
                         ymin = 0, ymax = 10000, fill = "2")) +
           geom_rect(data = x, aes(xmin = as.Date(Sys.Date()),
                         xmax = as.Date(Sys.Date() + 30),
                         ymin = min(min(x$Amount) - 1000, 0), ymax = 0, fill = "3")) + 
           geom_line(data = x, aes(x = Date, y = Amount, group = 1, text = paste("Date: ", Date, "<br>Amount: ", Amount))) + 
           geom_point(data = x, aes(x = Date, y = Amount, text = paste("Date: ", Date, "<br>Amount: ", Amount))) +
                 scale_fill_manual(values = alpha(c("green", "orange", "red"), 0.2))
               , tooltip = "text")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带工具提示的 Ggplotly 在使用 geom_rect() 时出现问题 的相关文章

  • 上传到 Shiny 服务器后在 R 中解压文件

    我正在尝试在我们的本地服务器上使用 Shiny 来构建一个应用程序 允许用户上传包含 ESRI shapefile 和关联文件的 zip 文件 Shiny 服务器的 fileInput 可以获取数据 并且当它这样做时 它会将其存储在临时目录
  • 使用行内 r 代码作为 R markdown 标头的一部分

    我希望使用行 R 代码作为 r markdown 文件中标头的一部分 然而 当我编织文件时 标题上使用的字体是不同的 如何确保字体相同 下面是一个简单的例子 r 1 1 Header 您可以将内容括在反引号中以表示内联 r 代码 如下所示
  • 如何使用 ggplot2 将 IPCC 点画添加到全球地图

    我需要将 IPCC style 点画添加到全球地图中 如下所示这个帖子 https stackoverflow com questions 11736996 adding stippling to image contour plot 不过
  • 函数速度测试的奇怪结果

    我编写了一个使用递归来查找最大公因数 分母 的函数 gt gcd function a b if length a length b gt 1 warning Only scalars allowed using first element
  • 使用 Hmisc LaTeX 函数编织时,LaTeX 表格的标题不出现

    我正在尝试使用 table 和 Hmisc 包创建 LaTeX 表 但是 我在显示标题时遇到问题 这是一个可重现的示例 r results asis data dow lt sample 1 7 100 replace TRUE purp
  • R 如何将 curly curly 与 filter 或 filter_ 一起使用?

    我正在回答这个question https stackoverflow com questions 54350264 dplyr unquoting does not work with filter function评论者建议 ensym
  • 将所有 0 值替换为 NA

    我有一个包含一些数字列的数据框 某些行具有 0 值 在统计分析中应将其视为空 在R中将所有0值替换为NULL的最快方法是什么 将所有零替换为 NA df df 0 lt NA 解释 1 它不是NULL你应该用什么来替换零 正如它所说 NUL
  • 如何将 r 数据框转换为 h2o 对象

    我对 R 和 H2O 很陌生 我试图找到一种将 r 数据帧转换为 h2o 对象的方法 我花了一些时间研究如何做到这一点 但没有运气 其他方式也是可能的 并且有详细记录如下 prosPath system file extdata prost
  • R 中的“右”滚动平均值和“左”滚动平均值是什么?

    如果我想计算之前的n意味着年份滞后于当年 我将如何实现这一点 它像 右 滚动平均窗口一样简单吗 或者它是一个 左 滚动平均窗口 我不确定这里使用哪个窗口 样本数据 set seed 1234 dat lt data frame year c
  • 我可以在 r 中使用传单“map_shape_click”事件来用数据表填充 box() 吗?

    我已经在网络上搜索了好几个星期 试图找到一个示例或代码来实现我想要用我的闪亮应用程序 shinydashboard 完成的任务 我是 r 的新手 我开始认为我想做的事情是不可能的 我基本上有一个带有县多边形 shapefile 的传单地图
  • 单击 hPlot 图表中闪亮的数据点时打印组名称

    我有一个闪亮的应用程序 它使用 rCharts 中的 highcharts 库显示一些图表 在某些情况下 我在单个图表上有多个图表 这些图表是使用 hPlot 中的组选项创建的 我希望在单击图表时打印单个数据点的所有参数 x y 和组值 我
  • 使用 Rgraphviz 中的 pos 参数来固定节点位置

    基于这个问题当弧与另一弧重叠时自动弯曲 https stackoverflow com questions 45721802 automatically curving an arc when it is overlapping with
  • 在 R data.table 中计算时间增量

    我有一个篮球运动员数据的数据表 其中包括每场比赛和多名球员的比赛日期 我想创建一个列来计算自上一场比赛以来的天数 我在 R 中使用 data table 包 PLAYERID GAME DATE 1 2989 2014 01 1 2 298
  • 如何检查向量是否是单个 NA 值,没有长度警告且没有抑制

    我有一个功能NA作为默认值 但如果没有NA应该是一个不限于大小 1 的字符向量 我有一个检查来验证这些 但是is na当向量是字符向量时产生标准警告length大于1 so function lt function x NA if is n
  • 如何扩展 ggplot y 轴限制以包含最大值

    通常 在图中 Y 轴值标签会在绘制的最大值下方被截断 For example library tidyverse mtcars gt ggplot aes x mpg y hp geom point 我知道scale y continous
  • 尝试使用 movie3d 制作 3D PCA 图(rgl)的电影

    我已经使用 pca3d 包在 R 中制作了 rgl 3D PCA 图 并且我正在尝试使用 movie3d 制作一个包含旋转图电影的 gif 文件 pca3d 包 makeMoviePCA 中有一个函数 它将其参数传递给 movie3d 这是
  • 计算横截面积作为高度的函数

    我试图弄清楚如何计算不同水位的河流横截面的充满水的面积 对于横截面 我有 5 m 宽河流上每 25 cm 的深度 并且可以根据之前很好回答的问题来计算面积计算不同高度的横截面积 https stackoverflow com questio
  • 如何使用 R 更改 png 文件的大小

    我正在绘制 png 文件并获取一张小图片 你知道一些可以改变 png 图大小的简单代码吗 我的地块太高太 薄 另外有没有办法改变情节的分辨率 谢谢 伊格尔 png png filename Rplot 03d png width 480 h
  • 使用 R 将图例添加到绘图中

    我使用 R 在一个图中创建了 4 条线 这是代码 Define 2 vectors cars lt c 123 07 110 51 96 14 98 71 101 3 trucks lt c 110 31 89 91 89 81 89 31
  • R:从 Github 安装包时出现编码问题

    我正在尝试安装dcStockR https github com yutannihilation dcStockR来自 Github 的包 这是一个htmlwidgets http www htmlwidgets org 周围的包装纸dc

随机推荐

  • 使用 C++、libpng 和 OpenMP 并行化 PNG 文件创建

    我目前正在尝试在 C 中实现一个基于 libpng 的 PNG 编码器 它使用 OpenMP 来加速压缩过程 该工具已经能够从各种图像格式生成 PNG 文件 我将完整的源代码上传到pastebin com 这样你就可以看到我到目前为止所做的
  • 在 null Laravel 上调用成员函数 Roles()

    我正在 Laravel 中使用户角色发挥作用 一切都工作正常 但从任何地方都出现错误 调用成员函数 Roles 或 null 这是我发送请求的 html td td
  • 未授权端点,请检查设置->安全->远程站点设置端点

    我无法通过 Twilio API 发送短信 我得到了以下异常 ERROR 未授权端点 请检查设置 gt 安全 gt 远程站点设置 端点 url global class SampleSMSTest future callout true p
  • 将项目添加到 Linux 内核链表

    我在用linux list h在我的用于实现队列 堆栈行为的代码中 头部 尾部添加API如下 static inline void list add struct list head new struct list head head li
  • 缓冲区溢出攻击(攻击实验室第 2 阶段)

    我有一个缓冲区溢出实验室 我必须为一个名为攻击实验室 http csapp cs cmu edu 3e attacklab pdf 我处于实验室的第二阶段 我必须将代码作为漏洞利用字符串的一部分注入 以使程序指向函数 touch2 的地址
  • 数据库连接和 OutOfMemoryError:Java 堆空间

    去年夏天 我制作了一个 Java 应用程序 它可以解析一些 PDF 文件并获取它们包含的信息并将其存储在 SQLite 数据库中 一切都很好 我每周左右都会向数据库添加新文件 没有任何问题 现在 我正在尝试提高应用程序的速度 我想看看如果我
  • 将广告注入 Google Chrome 扩展程序

    我正在开发一个 google chrome 扩展 并计划使用允许的功能注入广告 我检查过 广告行为 前面写着 此扩展程序将广告注入一些第三方网站 我的问题是 如何以及在哪里提及广告来源 比如说 如果我想显示 google adsense 我
  • PhoneGap 的 Flash 插件

    我正在phonegap 中开发一个html css javascript 应用程序 在该应用程序中 我需要一个 JavaScript 的 Flash 插件编码 以便为我的应用程序目的启用音频 视频 如果有人知道解决方案 请尽快回复我 您必须
  • 数据集与带有存储过程的实体框架

    整个问题已被重写以更加清晰 新项目设计 SQL Server 2012 Visual Studio 2012 Net 4 5 业务逻辑将在存储过程中实现 ASP Net 网络表单 WCF SOAP XML Web 服务使用 DBA 提供的存
  • Android ViewHolder背景颜色

    我正在创建一个 Android 应用程序 其中包含带有嵌套 CardView 的 RecyclerView 我需要将其他所有卡片更换为不同的颜色 我在用 Override覆盖onBindViewHolder ViewHolder vh in
  • 如何从 Google 新闻 RSS 中抓取 Google 新闻文章内容?

    将来 可能还很遥远 因为我还是个新手 我想做数据分析 基于我从Google News RSS获得的新闻内容 但为此 我需要访问该内容 这就是我的问题 使用网址 https news google cl news rss https news
  • JTextField 在最小化时调整大小

    我在 JFrame 中有一个 JTextField 和一个 JTextArea 但是 当应用程序运行时 如果我最小化窗口 JTextField 的大小就会调整 它的高度通常会增加一倍或三倍 但每次调整大小的方式并不一致 我不知道为什么会发生
  • 在 Plotly 中的单个迹线中显示多个图例

    So the docs https plotly com python legend 几乎使它看起来像是为同一项目的不同项目显示多个图例trace plotly graph objs Scatter 不是这样的东西Plotly默认支持 您应
  • 如何使用 xmlValue 使 xpathSApply 输出长度节点向量?

    可以说我有以下内容 library XML my xml lt
  • JSONSchema - 必需的属性依赖于父属性

    我想根据根模式中属性的存在在数组子模式中应用额外的 必需 属性 我的架构设置如下 schema http json schema org draft 07 schema type object required isParentDepend
  • 启动 Android Netflix 应用程序并传递视频 ID

    在我正在开发的应用程序中 我想支持 Netfilx 流媒体 我打算通过简单地启动 Netflix 并传递特定的 URI 来实现此目的 以便它在启动时播放特定的视频 简单吧 好吧 问题是我不确定如何在用于启动 Activity 的 Inten
  • PHP:gethostbyname 错误

    我在用gethostbyname 获取应用程序中域的 IP 地址 在某些情况下 还会检查 50 9 49 等无效地址 echo gethostbyname 50 9 49 returns 50 9 0 49 在这种情况下gethostbyn
  • 使用 OpenCV-3.0.1 / python 2.7 创建 svm

    这是多么奇怪的系统啊 我在这里遇到了与此问题相同的问题 AttributeError 模块 对象没有属性 SVM LINEAR https stackoverflow com questions 36109874 attributeerro
  • MongoDB-Java中查询数据去除_id并仅显示指定字段

    我正在 Eclipse 中完成一个 Java 项目 作为我大学作业的一部分 该项目的要求之一是将数据写入文本文件并在另一个类中将其读回 不过 我决定使用MongoDB而不是文本文件 数据的格式如下所示 Data https i stack
  • 带工具提示的 Ggplotly 在使用 geom_rect() 时出现问题

    我正在尝试在 ggplotly 图中绘制一些数据 x 轴包含日期 Ggplotly 不能很好地处理日期 因为当我将鼠标悬停在某个点上时 日期会显示为数字 我通过设置如下所示的工具提示解决了这个问题 一些示例数据 x lt data fram