使用事件触发选项和JavaScript编码R gvisTable预选(R gvisTable pre

2019-07-30 05:59发布

在该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知识充其量是有限的,所以我也不太清楚如何整合它。

PS的事件侦听可以通过运行发现

demo(EventListener)

Answer 1:

我可以找出做到这一点的唯一方法是对一些自定义JavaScript注入调用所创建的HTML gvisTable() 。 您将无法使用该事件侦听为您提供的例子那样 - 被该事件监听,当前实现,只有被点击表时执行的原因。 你需要你的代码之前,然后执行。 它看起来像插入它最好的地方,那么,在jsDrawChart返回的HTML的部分。 这是图表对象的JS表示被组装。 之后draw荷兰国际集团图表,你可以然后进行对象的附加调用。

就让我们来看看在谷歌图表文档的表对象表明你有一个很好的setSelection()在Javascript提供给您的功能,假设你使用正确的参数格式。

我做了以下内容:

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"

你当然可以做出更多的强大的使用正则表达式自动插入JS的附加线收盘括号前或修改GoogleVis函数的源代码。

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



文章来源: R gvisTable pre-selection using event trigger option and Javascript code