R - 传单 - highcharter 工具提示

2023-12-03

我想包括一个highcharter情节在我的leaflet弹出窗口。在来自的帮助下this帖子我能够包括sparkline阴谋。但是,由于我缺乏 html 技能,我不知道如何修改代码来使用highcharter. 这个答案关于SO (答案中的示例)正是我想要的。我只是不知道如何实施R.

library(leaflet)
library(tidyverse)
library(htmlwidgets)
library(htmltools)
library(sparkline)
library(highcharter)

# Step 1 convert htmlwidget to character representation of HTML components
as.character.htmlwidget <- function(x, ...) {
  htmltools::HTML(
    htmltools:::as.character.shiny.tag.list(
      htmlwidgets:::as.tags.htmlwidget(
        x
      ),
      ...
    )
  )
}


add_deps <- function(dtbl, name, pkg = name) {
  tagList(
    dtbl,
    htmlwidgets::getDependency(name, pkg)
  )
}

这工作正常:

leaflet() %>% 
  addTiles() %>% 
  addCircleMarkers(lat = 45.4, lng = 14.9,
                   popup = list(paste(as.character(sparkline(1:19))))) %>%
  onRender(
    "
function(el,x) {
  this.on('popupopen', function() {HTMLWidgets.staticRender();})
}
") %>%
  add_deps("sparkline") %>%
  browsable()

enter image description here

不幸的是,这不仅仅是改变add_deps to highcharter

leaflet() %>% 
  addTiles() %>% 
  addCircleMarkers(lat = 45.4, lng = 14.9,
                   popup = list(paste(as.character(
                     hchart(data.frame(x = 1:10, y = 1:10), type = "line", hcaes(x = x, y = y)) %>% hc_size(width = 300, height = 200)
                     ))),
                   popupOptions = popupOptions(minWidth = 300, maxHeight = 200)) %>%
  onRender(
    "
function(el,x) {
  this.on('popupopen', function() {HTMLWidgets.staticRender();})
}
") %>%
  add_deps("highcharter") %>%
  browsable()

enter image description here

我尝试修改“popupopen”功能但没有成功。


一、解决办法:

leaflet() %>% 
  addTiles() %>% 
  addCircleMarkers(lat = 45.4, lng = 14.9,
                   popup = list(paste(as.character(
                     hchart(data.frame(x = 1:10, y = 1:10), type = "line", hcaes(x = x, y = y)) %>% hc_size(width = 300, height = 200)
                   ))),
                   popupOptions = popupOptions(minWidth = 300, maxHeight = 200)) %>%
  onRender(
    "
function(el,x) {
  this.on('popupopen', function() {HTMLWidgets.staticRender();})
}
") %>%
  add_deps("highchart", 'highcharter') %>%
  browsable()

enter image description here

而现在,为什么呢?

这是由于add_deps功能:

add_deps <- function(dtbl, name, pkg = name) {
  tagList(
    dtbl,
    htmlwidgets::getDependency(name, pkg)
  )
}

正如你所看到的,它在内部使用htmlwidgets::getDependency。如果我们尝试用leaflet包裹:

library(htmlwidgets)
getDependency('leaflet')[1:3]
#> [[1]]
#> List of 10
#>  $ name      : chr "htmlwidgets"
#>  $ version   : chr "1.5.1"
#>  $ src       :List of 1
#>   ..$ file: chr "/home/malditobarbudo/R/x86_64-pc-linux-gnu-library/3.6/htmlwidgets/www"
#>  $ meta      : NULL
#>  $ script    : chr "htmlwidgets.js"
#>  $ stylesheet: NULL
#>  $ head      : NULL
#>  $ attachment: NULL
#>  $ package   : NULL
#>  $ all_files : logi TRUE
#>  - attr(*, "class")= chr "html_dependency"
#> 
#> [[2]]
#> List of 10
#>  $ name      : chr "jquery"
#>  $ version   : chr "1.12.4"
#>  $ src       :List of 1
#>   ..$ file: chr "/home/malditobarbudo/R/x86_64-pc-linux-gnu-library/3.6/leaflet/htmlwidgets/lib/jquery"
#>  $ meta      : NULL
#>  $ script    : chr "jquery.min.js"
#>  $ stylesheet: NULL
#>  $ head      : NULL
#>  $ attachment: NULL
#>  $ package   : NULL
#>  $ all_files : logi TRUE
#>  - attr(*, "class")= chr "html_dependency"
#> 
#> [[3]]
#> List of 10
#>  $ name      : chr "leaflet"
#>  $ version   : chr "1.3.1"
#>  $ src       :List of 1
#>   ..$ file: chr "/home/malditobarbudo/R/x86_64-pc-linux-gnu-library/3.6/leaflet/htmlwidgets/lib/leaflet"
#>  $ meta      : NULL
#>  $ script    : chr "leaflet.js"
#>  $ stylesheet: chr "leaflet.css"
#>  $ head      : NULL
#>  $ attachment: NULL
#>  $ package   : NULL
#>  $ all_files : logi TRUE
#>  - attr(*, "class")= chr "html_dependency"

Created on 2019-12-05 by the reprex package (v0.3.0)

我们可以看到它返回一个列表leafletjs 依赖项(截断为前三个)。如果我们尝试同样的highcharter它不返回任何依赖项(除了强制的 htmlwidgets 依赖项)

library(htmlwidgets)
getDependency('highcharter')
#> [[1]]
#> List of 10
#>  $ name      : chr "htmlwidgets"
#>  $ version   : chr "1.5.1"
#>  $ src       :List of 1
#>   ..$ file: chr "/home/malditobarbudo/R/x86_64-pc-linux-gnu-library/3.6/htmlwidgets/www"
#>  $ meta      : NULL
#>  $ script    : chr "htmlwidgets.js"
#>  $ stylesheet: NULL
#>  $ head      : NULL
#>  $ attachment: NULL
#>  $ package   : NULL
#>  $ all_files : logi TRUE
#>  - attr(*, "class")= chr "html_dependency"
#> 
#> [[2]]
#> NULL

Created on 2019-12-05 by the reprex package (v0.3.0)

这是因为highcharter是 R 包名称,而不是 js 库名称。你 可以看看list.files(system.file('htmlwidgets', package = 'highcharter'))到 看到这个库被称为高图,因此在此使用正确的名称 少量:

{...} %>%
  add_deps("highchart", 'highcharter') %>%
  {...}

会成功的;)

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

R - 传单 - highcharter 工具提示 的相关文章

  • 如何在折线图中显示 Sep-12 格式的数据并抑制网格线和灰色背景?

    我正在努力使日期格式正确 数据已经是melt 格式 数据中有四个变量碰巧共享相同的数据 我只是想绘制一个简单的四线折线图 每个变量作为一条单独的线 并将 Sep 12 显示为最新数据点 我正在使用旧的 ggplot 请随意 我有两个问题 第
  • 如何在RcppParallel中调用用户定义的函数?

    受到文章的启发http gallery rcpp org articles parallel distance matrix http gallery rcpp org articles parallel distance matrix 我
  • R Leaflet:添加多边形时传递 popupOptions。

    Within addPolygons 有一个popup参数就像addPopups 功能 区别 我认为 是当弹出窗口创建时addPolygons 可以单击多边形内的任意位置来触发弹出窗口 但是如果addPopups 被使用 单个lng and
  • R 编程中的字符串分割

    目前 下面的脚本将组合的项目代码拆分为特定的项目代码 rule2 lt c MR df 1 lt test grep paste rule2 sep collapse test Name y SpaceName 1 lt function
  • 在R闪亮中,如何在UI端使用在SERVER端计算的值?

    在我的 R闪亮应用程序中 我想调整我的高度d3heatmap 见包装d3热图 https cran r project org web packages d3heatmap index html 作为我的数据框行数的函数 有一个论点heig
  • 在 R 中捕获段错误

    我得到了caught segfault每次我尝试从以下位置运行任何绘图函数时都会出错ggplot2包 1 0 0 我已经尝试过这个qplot geom dotplot geom histogram等来自包的数据 例如diamonds or
  • 枚举所有可能的二元组星座

    我正在寻找一种方法来枚举 n 个成员的所有可能的两人组星座 例如 对于 n 4 个成员 以下 3 个独特的组星座是可能的 请注意 组内成员的顺序和组顺序都不重要 1 2 3 4 1 3 2 4 1 4 2 3 例如 对于 n 6 个成员 可
  • R 未获取用户库

    我有一个带 R 3 6 0 的 Fedora 30 系统 用户库设置在Renviron就像这个 R LIBS USER R LIBS USER R x86 64 redhat linux gnu library 3 6 事实上 它出现在交互
  • 使用 fread 导入数据后所有列均作为字符

    我导入了一个 CSV 文件 包含文本列和数字列 x lt fread myfile csv header TRUE verbose T na strings c null null 但导入后 当我运行summary x 时 所有列都被视为字
  • R Shiny UI 子选项复选框?

    我有一个基本的 RShiny 应用程序 它有一个反应式复选框 它根据复选框中选择的数据 df 列 绘制时间序列数据 我当前的代码生成一个带有复选框输入的 UI 如下所示 Load R packages library shiny libra
  • 读取多个 CSV 文件,并在文件开头跳过不同行数

    我必须阅读大约 300 个单独的 CSV 我已经成功使用循环和结构化 CSV 名称来自动化该过程 然而 每个 CSV 在开头都有 14 17 行垃圾 并且随机变化 因此在 read table 命令中硬编码 skip 参数将不起作用 每个
  • 如何在 R 中创建循环来生成随机样本列表?

    我正在尝试创建一个循环来创建一系列包含随机样本的对象 如下所示 sample lt ceiling runif 9 min 0 max 20 这是圆形制服的示例 但它可以替换为普通 泊松或任何您想要的 因此 我构建了一个循环来自动生成各种生
  • 准备编程竞赛的缩写和函数[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 不理解..密度的行为

    在下面的数据框中 我预计密度的 y 轴值为 0 6 和 0 4 但它们是 1 0 我觉得我使用的方式显然缺少一些非常基本的东西 密度 但是我的大脑冻结了 我将如何使用 密度 获得所需的行为 任何帮助将不胜感激 df lt data fram
  • 从频率表生成 data.frame

    我在 2 4 数组中有包含 500 个观察值的合成数据 datax array c 120 181 50 43 41 33 24 8 dim c 2 4 dimnames datax list gender c male female pu
  • R 中 x 轴曲线的阴影面积

    所以我有一个位于 x 轴下方和上方的图表 并且想要对线和 0 之间的区域进行着色 在这里 我尝试使用多边形函数 但它只给出曲线下的面积 plot year difference1 type l polygon year difference
  • 通过删除连续的重复项来减少字符串长度

    我有一个包含 2 个字段的 R 数据框 ID WORD 1 AAAAABBBBB 2 ABCAAABBBDDD 3 我想通过仅保留字母而不是重复中的重复项来简化具有重复字母的单词 e g AAAAABBBBB应该给我AB and ABCAA
  • 为 Linux 安装 R 包时出错

    我试图在 R 3 3 上安装一个名为 rgeos 的包 但是当我输入 install packages rgeos 但它返回给我以下错误 其他包也会发生同样的情况 但不是所有包 gt installing source package rg
  • 如何在 rmarkdown 中显示带有 results='asis' 的格式化 R 输出

    当使用 results asis 时 有没有办法在 rmarkdown knitr 中显示格式化程序 R 输出 一个例子是以下函数 myfun lt function cat hello n cat c one 1 two 2 然后 该块将
  • 用于带有嵌套子图的图的 r 包? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个用于图形 网络的 r 包 它可以处理嵌套子图 Graphviz 做到了这一点 但只提供可

随机推荐

  • Firebase / Firestore 将文档添加到子集合版本 9

    出于某种原因 我只是不明白 我想将新文档添加到子集合中 这是我的布局如下 Users Collection UID Document Lists Collection Category Document Category Document
  • 如何更改 ColorDialog 的标题?

    我正在旋转一个ColorDialogWinForms 中的组件让用户选择特定自定义控件的图表的背景色和前景色 两个配置选项都位于配置对话框的同一页面上 因此我想在弹出对话框时将颜色对话框的标题设置为 背景颜色 以更改图表的背景 并将 网格颜
  • Jackson - 循环依赖导致反序列化失败

    好的 所以我正在尝试使用 jackson json 转换器测试一些东西 我正在尝试模拟图形行为 所以这些是我的 POJO 实体 JsonIdentityInfo generator ObjectIdGenerators PropertyGe
  • 使用 Castle Windsor 在 ASP.NET MVC 中实现多租户的最佳实践是什么?

    我有一个具有两种不同实现的服务 我想注入到控制器构造函数中 具体取决于一个标准 目前该标准是存储在会话中的一个简单值 这是我现在得到的 服务接口 public interface IService string GetSampleText
  • 如何向后视觉选择计算?

    我想直观地向后选择计算 p e 200 3 This is my text 300 2 9 3 This is text 0 25 2 000 sqrt 15 1 5 原因是我会在插入模式下使用它 编写计算后 我想选择计算 使用地图 并将计
  • getScript 或 eval 在特定位置?

    我想知道 eval 或 jQuery 的 getScript 的某些变体 是否可以用于将外部 javascript 定位在 DOM 末尾或头部以外的位置 我试过了 var head document getElementById fig 代
  • 如何将 Microsoft 用户从 Azure 同步到 Keycloak

    我们正在尝试找出一种将用户从 Azure 帐户同步到 Keycloak 的方法 不幸的是 我们找不到它的文档 你知道正确的方法吗 我想使用 Azure 作为外部数据库 可用于对用户进行身份验证 谢谢 我想使用 Azure 作为可用于进行身份
  • 使用 gcc、g++ 和 gdb 在 Window 7 上设置 VSCode 进行 C/C++ 调试

    我正在遵循以下指示here 安装了cpptools 已创建tasks json包含以下内容 version 0 1 0 command g isShellCommand true showOutput always args g hello
  • 如何将“setcdr”与缓冲区局部变量一起使用

    我正在使用的行为setcdr这似乎表明它不限于在不同缓冲区中包含相同名称的缓冲区局部变量 我尝试过使用with current buffer 但这并不能解决问题 例如 buffer A and buffer B两者都包含一个名为的局部变量v
  • 如何反转 Firebase 中的项目顺序

    如何在 Firebase 中反转此列表的顺序 我希望最后一项成为第一项 我尝试使用queryOrdered 但这并没有什么区别 我列出了从 Firebase 检索的数据结构的一个示例 KhPRPQEOiVzPW7G2iQI amount 2
  • JMeter:如何在多个线程组循环中重用/重新打开 CSV?

    在 JMeter 中 我有一个 CSV 用户列表 每个用户都应该上传一定数量的文件 这些文件列在第二个 CSV 中 每个用户必须上传所有文件 由于服务器无法一次处理所有线程 因此我将线程组设置为使用 X 个用户并循环 Y 次 以便最终所有用
  • dataWithContentsOfURL 通过蜂窝网络返回 NSCocoaErrorDomain Code=256,但不通过 wifi 返回

    我遇到了一个非常奇怪的问题 dataWithContentsOfURL 已开始通过蜂窝网络返回错误代码 256 但不通过 wifi 返回错误代码 操作无法完成 可可错误 256 我确实有蜂窝数据连接 并且它正在运行 所以我的蜂窝连接不是问题
  • 在 WooCommerce 中添加到购物车之前尽早设置运输邮政编码

    我希望客户能够在将产品添加到购物车之前设置他们的邮政编码 然后保存该邮政编码并用于定义可用的交付方式 我已经制作了以下功能 但它并不总是有效 而且我不确定应该使用哪些 Woocommerce 方法以及它们之间有什么区别 WC gt cust
  • 空数组自动初始化内容?

    How come int alone System out println alone 给出错误但是 int arr new int 1 System out println arr 0 等于0 当你初始化一个空数组时 它是否会自动将其内容
  • JSF 托管 bean 修改后重新部署应用程序

    为什么 JSF 托管 Bean 修改需要重新部署应用程序才能生效 开发环境 日食靛蓝 JBoss为7 JBossAS 工具 进一步解释 如果我修改 JSF 页面 只需刷新页面即可可视化修改 但 JSF 托管 bean 修改的情况并非如此 我
  • 在 SSE/AVX 中高效计算 X 的幂

    我正在寻找最有效的方法来计算浮点数的所有第一个整数幂XSSE 128 AVX 256 AVX 512 寄存器内部 128 256 和 512 位 例如对于 float AVX1 256 我想进入寄存器X 1 X 2 X 3 X 4 X 5
  • 屏幕键盘 gui 无法正常工作

    我正在尝试在顶部显示文本区域并在其下方显示键盘键 但是当我运行此代码时 整个事情是混合的 我做错了什么以及如何解决它 这是代码 public Keyboard super Typing Tutor pane1 new JPanel pane
  • 将 Microsoft Ajax Minifier 与 Web 安装项目和源代码管理结合使用

    我刚刚开始调查微软 Ajax 缩小器 4 0与我正在开发的 Visual Studio 2008 Web 应用程序一起使用 事实证明 将其挂接到 csproj 文件中非常容易 因此它为所有脚本生成 min js 文件 但是我对如何将其与 W
  • A 类声明多个 JSON 字段

    我有一个类 A 它有一些私有字段 同一个类扩展了另一个类 B 它也有一些类 A 中的私有字段 public class A extends B private BigDecimal netAmountTcy private BigDecim
  • R - 传单 - highcharter 工具提示

    我想包括一个highcharter情节在我的leaflet弹出窗口 在来自的帮助下this帖子我能够包括sparkline阴谋 但是 由于我缺乏 html 技能 我不知道如何修改代码来使用highcharter 这个答案关于SO 答案中的示