gpt4 book ai didi

javascript - 使用事件触发选项和 Javascript 代码的 R gvisTable 预选

转载 作者:行者123 更新时间:2023-11-30 18:24:15 28 4
gpt4 key购买 nike

R 中,我希望为 gvisTable 设置输出选择,以便突出显示特定的行或列。

例如我有以下代码:

a <- as.data.frame(matrix(1:100, nrow=10))

plot(gvisTable(a))

只有在点击第 4 行时,它才会突出显示。

有没有办法在运行绘图功能时预选第 4 行,即它会自动突出显示第 4 行。

查看 googleVis 的小插图后,似乎有一个事件监听器和事件触发器,可以在选项中插入一些 javascript 代码,以便更改输出。这是通过使用选项 gvis.listener.jscode 完成的。触发器是否有等效项来触发事件。我认为 javascript 代码需要使用类似 setSelection() 的东西,但我的 Javascript 知识充其量是有限的,所以我不太确定如何集成它。

p.s 可以通过运行找到事件监听器

demo(EventListener)

最佳答案

我能想到的唯一方法是将一些自定义 JavaScript 注入(inject)到通过调用 gvisTable() 创建的 HTML 中。您将无法像您提供的示例那样使用 EventListener——原因是当前实现的 eventListener 仅在单击表格时才执行。您需要在此之前执行您的代码。看起来最好的插入位置是返回的 HTML 的 jsDrawChart 部分。这是图表对象的 JS 表示得到组装的地方。 绘制图表后,您可以对该对象进行其他调用。

快速浏览 Google Charts documentation对于表格对象,假设您使用正确的参数格式,您可以在 Javascript 中使用一个不错的 setSelection() 函数。

我做了以下事情:

mytab <- (gvisTable(a,chartid="myTable"))
#you just want to add the following line of JS before the close bracket in the jsDrawChart function.
# chart.setSelection([{'row':2, 'column':null}]);

#in my case, that turned out to be the following:
mytab$html$chart["jsDrawChart"] <- "\n// jsDrawChart\nfunction drawChartmyTable() {\n var data = gvisDatamyTable();\n var options = {};\noptions[\"allowHtml\"] = true;\n\n var chart = new google.visualization.Table(\n document.getElementById('myTable')\n );\n chart.draw(data,options);\n chart.setSelection([{'row':2, 'column':null}]); \n\n}\n \n"

您当然可以通过使用 RegEx 或修改 GoogleVis 函数的源代码在右括号前自动插入额外的 JS 行来使其更加健壮。

但是一旦我添加了那行 JS,我现在就可以运行 plot(mytab) 并让它自动选择我想要的行(请记住它是 0 索引的).

关于javascript - 使用事件触发选项和 Javascript 代码的 R gvisTable 预选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11321883/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com