实现HighCharts和服务器之间的通信R
Achieving communication between HighCharts and server.R
当点击HighCharts条形图上的一个条形图时,我正试图在一个单独的div元素中显示一个表(或者可能是另一个图)。我正在使用Shiny包中的rCharts来创建HighCharts图。
到目前为止,在我的实验中,我遇到了两个可能的psth。
路径1
我尝试在API的HighCharts栏/柱图中使用点击功能。我试过这样做。
observe({ output$plot <- renderChart2({ a <- hPlot(x="id",y="sequence",data=myData,type="column") a$tooltip( animation = 'true', formatter = "#! function() {return '<b>' + 'Frequency of tag_id ' + this.x + '</b>' + ' is ' + this.y;} !#") a$plotOptions(series = list(color = '#388E8E'),column = list(dataLabels = list(enabled = T, rotation = -90, align = 'right', color = '#FFFFFF', x = 4, y = 10),cursor = 'pointer', point=list(events = list(click = func)))) return(a) }) session$sendCustomMessage(type="data", rg1) )}
对于函数func(应该在点击条时调用),
func <- "#! function() { Shiny.addCustomMessageHandler('data', function(rg1) { var data1 = rg1.series $('.container_subcat').highcharts({ chart: { type: 'column', } xAxis: { categories:(data1) }, title: { text: 'Monthly Average Rainfall' }, series: [{ data :(data1) }] }); })} !#"
我确信这不是绑定数据的方法,但在查看了几个在线来源后,我在上面的代码中添加了很多代码。我的尝试都没有让我微笑。此外,我认为如果按照这种方式进行,我需要将数据从R数据帧(上面的rg1
是一个数据帧)更改为Java脚本可读格式,但不知道何时何地进行转换。
路径2
我使用了session$sendCustomMessage()
和Shiny.addCustomMessageHandler()
函数。
server.R->app.js
在服务器中。R:
observe({ session$sendCustomMessage(type="newdata", data })
在app.js:
Shiny.addCustomMessageHandler("newdata", function(data1) { ... });
中
chart.js->server。R
在app.js:
Shiny.onInputChange("select", this.data.ele);
中在服务器中。R:
current <- input$select
上面的机制适用于HTML中的所有按钮或其他UI元素。但是,当点击条形图上的一个栏时,我正试图实现同样的机制。我不知道如何从柱状图中提取每个小节,并像在current <- input$select
中使用它一样使用它。因此,它基本上是在HighCharts UI元素(inturn是shing/rCharts元素)和服务器之间建立通信,以在单击元素时获取数据。
我遇到了Shiny输入和输出绑定,很难理解它们,也不确定它们在我的特定情况下是否有用。有人能教我一个能解决我问题的方法/解决方案吗。
如果有人在寻找答案,请转到这个问题,使用粘贴的方法就像魅力一样工作,并将数据传递给javascript函数。
- firefox插件和dev/panel之间的通信
- 如何在两个不同的iframe HTML之间进行通信
- Angularjs事件与发布/订阅指令之间的通信
- Firefox插件SDK:在侧边栏和主脚本之间通信对象
- Ember.js:接受的子组件和父组件之间通信的最佳实践
- 如何在Windows Phone 8.1应用程序中在C#和Javascript之间传递数据或通信
- 如何在Famo.us中的两个视图(不同的js文件)之间进行通信
- 在Jquery或Javascript中获取两个范围或日期之间的通信周数
- 如何在同源选项卡之间建立通信
- 如何在 PHP 和 JS 中的并发会话之间进行通信
- 如何在两个动画画布元素之间进行通信
- 在 HTML5 和 C# Web 套接字通信之间
- angularjs 中控制器和指令之间的通信
- 歌剧扩展脚本和它们之间的通信
- 如何使用js在两个aspx页面之间进行通信
- 多个应用程序之间的通信
- Chrome扩展:内容脚本和background.html之间的通信
- 如何在同一页面上的Angular应用程序和非Angular应用软件之间进行通信
- 反应.js:同一父母的两个孩子之间的通信
- 我的Javascript和PHP通信之间有什么问题,用于上传图像