问题标签 [htmlwidgets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5547 浏览

r - 在 Plotly 中更改悬停文本的大小

我正在基于 R 中的 ggplot 构建一个 Plotly 图。我想增加悬停框中文本的大小。假设我有一个像这样的散点图:

有没有办法改变悬停文本的大小?

0 投票
1 回答
319 浏览

r - 带有 uiOutput 的 shinyDND 不起作用

我正在尝试使用 uiOuput、renderUI 和 dragUI 从服务器端使用 shinyDND,但创建的 div 不可拖动。例子:

在 renderUI 函数中创建的 dragUI 元素可见但不可拖动。ui 函数中的dragUI 元素很好。

有任何想法吗?

0 投票
1 回答
721 浏览

r - 如何在 Rmarkdown 的应用循环中生成的 dygraphs 之间添加间距?

这个问题与For loop over dygraph 在 R 中不起作用有关

@Yihui 的这个答案很好地详细说明了如何在 rmarkdown 的循环中创建 dygraphs 图。但是,正如您会注意到的,图之间没有间距。当它们有很多时,这变得非常难以阅读。

有没有办法在自定义应用功能本身内生成的每个图之间添加间距、文本、水平规则等?

我目前的解决方法是传入一个 dyOptions titleHeight 参数,以及一个指向外部 CSS 的 dyCSS 参数,该外部 CSS 在标题顶部设置填充。例如,我可以将 titleHeight 参数设置为 50px,然后将标题本身设置为 25px,顶部填充高度为 25px。

和 dygraphs.css 文件:

如果我不想要情节标题,但仍想要情节之间的分隔,我将换行符作为标题传递,如下所示:

虽然这确实可以增加间距,但如果可能的话,我宁愿避免使用外部 CSS。更不用说,它不允许您在绘图本身之间添加任何其他对象(如文本或水平规则)。有没有办法在函数调用的每次迭代之间手动添加这些对象?

编辑:因此,根据下面的答案,我们还可以在每次迭代之间添加一个中断,如下所示:

这看起来不错,尽管我很想听听其他想法。

0 投票
1 回答
858 浏览

javascript - 将动态变化的 R htmlwidget 嵌入到网页中

我需要在 R 中使用 javascript 可视化包,如 plotly 和 dygraphs,并在我的网页中显示生成的图。每当用户与网页中的其他 HTML 元素交互时,都需要更新生成的绘图。

我已经考虑过将 UI 与绘图集成的 Shiny 服务器方式并对此感到失望,因为它限制了开发人员使用 javascript 完全控制 UI 的方式,否则它很棒。

到目前为止,我发现我可以将 htmlwidgets 文件嵌入到 IFrame 中以显示绘图,但正如本文所述:Embedding an R htmlwidgets into existing pages,一般来说,Iframes 被认为是不好的做法,因此想这样做:回答上面链接的问题

但问题是,每次我使用 plotly 或 dygraph 重新生成绘图并使用 htmlwidgets 包的 saveWidget() 函数保存它们时,生成的绘图文件对于生成的绘图的 div 具有不同的 id。如何将 div 嵌入到外部 HTML 文件中(使用 srcs 到更多 html/css/js 文件),每次生成绘图文件时,其 id 都会发生变化?

0 投票
1 回答
754 浏览

r - 闪亮或只是 htmlwidgets

我必须使用 htmlwidgets 相关包(plotly 和 dygraphs)来生成图,然后我可以: 1. 另存为 .html 文件并通过 iframe 链接它们。2.在闪亮的应用程序中使用。

我宁愿创建自己的 UI 而不是使用 Shiny,但是:

如果我不使用 Shiny,每次我重新生成绘图(在某种用户交互上)时,都需要将 plotly/dygraphs 创建的 html 文件(超过 1MB)传输到客户端。这可能会造成瓶颈。

因此,我想知道在重新渲染用户交互图时,使用 Shiny 是否会减少需要传输到客户端的数据量。

0 投票
1 回答
204 浏览

r - 你如何将变量传递给widget_html

问题

htmlwidgets.org 页面上自定义小部件 HTML的最后一部分说,您可以通过创建一个名为的函数将自己的 html 添加到小部件<widget_name>_html

你如何将变量传递给这个函数?

例子

我创建了一个名为myWidgetHTML的新包,然后运行htmlwidgets::scaffoldWidget(name = "myHTML”)​​. 该软件包托管在我的github 页面上

在生成的R/myHTML.R文件中,我创建了函数

hello world构建和运行小部件按预期生成字符串

在此处输入图像描述

我想不通的是如何编写函数以便我可以将变量传递给myString它:

浏览小部件的源代码并没有发现任何问题,因为相关部分(复制如下)表明它通过 接受进一步的参数...,但我看不到从哪里发送它们。

0 投票
1 回答
765 浏览

javascript - 使用 htmlwidgets::scaffoldWidget 合并外部 js 库,以便将新包放入闪亮的应用程序

slickjavascript 库(http://kenwheeler.github.io/slick/ )给我留下了深刻的印象,并希望将其合并到我闪亮的应用程序/flexboard 页面中。

我想使用htmlwidgetsR 中的包合并 slick js 库,所以首先尝试按照在线文档(http://www.htmlwidgets.org/develop_intro.html)中的建议创建一个包,通过执行以下...

我从https://github.com/kenwheeler/slick/archive/1.6.0.zip下载了 js 库

并将其放入包的结构中,这样我就有了一个看起来有点像这样的文件结构。

我的slick.yaml文件看起来像这样...

但是对于如何调整inst/htmlwidget/slick.js文件和R/slick.R文件,我真的很困惑,它可以采用 URL 向量并将它们显示在闪亮的应用程序中。原因是它似乎与提供的示例不匹配类似的输入数据概念。

为了重现性和使用包中示例中提供的相同 URL,我提供了一个占位符 img url 的向量,我想将其用作内容。对于轮播中的每个图像。

也许我可能需要使用这样的东西?...

与往常一样,对此的任何帮助将不胜感激。

编辑

我的新slick.yaml文件如下所示......在@NicE 的回答帖子之后......我错过了什么吗?

现在我的文件结构如下所示:

我的/inst/htmlwidgets/slick.js样子如下

0 投票
1 回答
510 浏览

r - 如何更改 mjs_histogram 条颜色(使用 metricsgraphics r 包)?

我似乎无法弄清楚如何更改使用 metricsgraphics 包创建的直方图的颜色。我已经构建了一个功能强大的 Shiny 应用程序,它使用以下代码呈现直方图:

我添加了 color = "#d7191c" mjs_plot 和 mjs_histogram 无济于事 - 我在这两种情况下都得到了一个未使用的参数错误。我在 hrbrmstr 的信息页面http://hrbrmstr.github.io/metricsgraphics/上找不到任何内容,在帮助手册中也找不到任何内容。似乎对除直方图之外的每种图形类型都解释了使用颜色选项。

我不擅长 html/javascript,不知道还能尝试什么...

0 投票
2 回答
3349 浏览

r - 带有 R 库 networkD3 的桑基图不显示颜色

我正在使用 R 的 networkD3 库来创建 Sankey 网络。虽然这对我来说效果很好,但我现在遇到了将属性“NoteID”和/或“NoteGroup”分配给分组和分配颜色的问题,如https://christophergandrud.github.io/networkD3/#sankey所示

以下代码显示了 4 个创建 Sankey 图的示例,只有“Sankey4”按设计工作,即没有颜色:

“Sankey1”尝试使用“NoteID”,就像上面引用的网络示例中使用的那样,但是,这样做会导致图表根本不显示;“Sankey2”的效果相同。无论配色方案定义如何,“Sankey4”都显示为灰色。

我还查看了两者生成的 html 代码,我的 R 代码生成“Sankey1”以及https://christophergandrud.github.io/networkD3/#sankey上使用的代码。显然,关于组有不同:

来自“Sankey1”的 HTML:

网络示例的 HTML 摘录:

更改“Sankey1”的输出 html 以反映 Web 示例的输出解决了该问题,“Sankey1”使用默认颜色模式显示。

我目前正试图了解我正在使用的数据的行为。sankey 函数不依赖于强制列表输入;实际上,我已经将网站中的示例数据集拆分为两个数据框(节点、链接),这确实产生了与 web 示例中相同的带有颜色的 sankey 图。因此,我的示例中的输入数据一定有问题......我猜......任何帮助将不胜感激!谢谢奥利

0 投票
0 回答
93 浏览

javascript - RMarkdown 文档上的多个基于 GeoJSON 的地图(Highmaps)

我目前正在使用 rCharts/highcharter 在 Rmarkdown 文档中绘制多个交互式地图。

但是,它生成的 HTML 页面将 GeoJSON 文件包装在每个地图中,从而形成一个超大文件。

我的问题是:

有没有一种方法可以使 GeoJSON 文件成为全局文件(作为 JSON 对象存储在 HTML 中的某处),以便脚本可以从中读取而不是每次都嵌入它?