在Shining中使用动态highcharts中的返回数据
我在Shiny中实现了一个图形,用户可以使用示例中的“draggable point”选项创建自己的时间序列。我想使用server.r中的“新”数据点,并在表中显示它们。如果有人能帮助我如何返回数据点,那就太好了。请找到下面的代码 谢谢,蒂姆 服务器.r:在Shining中使用动态highcharts中的返回数据,r,highcharts,shiny,R,Highcharts,Shiny,我在Shiny中实现了一个图形,用户可以使用示例中的“draggable point”选项创建自己的时间序列。我想使用server.r中的“新”数据点,并在表中显示它们。如果有人能帮助我如何返回数据点,那就太好了。请找到下面的代码 谢谢,蒂姆 服务器.r: data(citytemp, package = "highcharter") function(input, output) { hcbase <- reactive({ # hcbase <- function(
data(citytemp, package = "highcharter")
function(input, output) {
hcbase <- reactive({
# hcbase <- function() highchart()
hc <- highchart()
if (input$credits)
hc <- hc %>% hc_credits(enabled = TRUE, text = "Highcharter", href = "http://jkunst.com/highcharter/")
if (input$exporting)
hc <- hc %>% hc_exporting(enabled = TRUE)
if (input$theme != FALSE) {
theme <- switch(input$theme,
null = hc_theme_null(),
economist = hc_theme_economist(),
dotabuff = hc_theme_db(),
darkunica = hc_theme_darkunica(),
gridlight = hc_theme_gridlight(),
sandsignika = hc_theme_sandsignika(),
fivethirtyeight = hc_theme_538(),
chalk = hc_theme_chalk(),
handdrwran = hc_theme_handdrawn()
)
hc <- hc %>% hc_add_theme(theme)
}
hc
})
output$table <-renderDataTable({
#Output from graph
data.table(month=citytemp$month,berlin=citytemp$berlin
,berlin_dragged=citytemp$berlin)#Here I want to use the dragged data. something linke input$highchart$... should do the trick I guess...
})
output$highchart <- renderHighchart({
data(citytemp)
highchart() %>%
hc_chart(animation = FALSE) %>%
hc_title(text = "draggable points demo") %>%
hc_xAxis(categories = month.abb) %>%
hc_plotOptions(
series = list(
stickyTracking = FALSE
),
column = list(
stacking = "normal"
),
line = list(
cursor = "ns-resize"
)
) %>%
hc_add_series(
data = citytemp$berlin,
draggableY = TRUE
)
})
}
ui.r
library("shiny")
library("shinydashboard")
library("highcharter")
library("dplyr")
library("viridisLite")
library("markdown")
library("quantmod")
library("tidyr")
library("ggplot2")
library("treemap")
library("forecast")
library("DT")
rm(list = ls())
dashboardPage(
skin = "black",
dashboardHeader(title = "highcharter", disable = FALSE),
dashboardSidebar(
sidebarMenu(
menuItem("Examples", tabName = "examples", icon = icon("bar-chart"))
)
#,
#div(includeMarkdown("hcterinfo.md"), style = "padding:10px")
),
dashboardBody(
# tags$head(tags$script(src = "js/ga.js")),
# tags$head(tags$link(rel = "stylesheet", type = "text/css", href = "css/custom_fixs.css")),
tabItems(
tabItem(tabName = "examples",
fluidRow(
box(width = 6, highchartOutput("highchart")),
box(width = 6, dataTableOutput("table"))
)
)
)
))
数据(citytemp,package=“highcharter”)
功能(输入、输出){
hcbase关键部分是:
- 在highcharts中使用drop事件(JS代码)
- 在上一个代码事件中,使用shinn.onInputChange('inputname',data)。这会告诉shinny manualforecast数据已更改,因此可以在渲染函数中使用
- 然后创建一个renderObject(renderTable),调用input$inputname。这样你就可以得到更新的数据并做任何你想做的事情
关键代码行
hc_plotOptions(
series = list(
point = list(
events = list(
drop = JS("function(){
console.log(this.series)
window.data = _.map(this.series.data, function(e) { return e.y })
Shiny.onInputChange('inputname', data);
}"))
)))
然后:
renderDataTable({
...
var <- input$inputname # listening the drop event
...
renderDataTable({
...
var关键部分是:
- 在highcharts中使用drop事件(JS代码)
- 在上一个代码事件中,使用shinn.onInputChange('inputname',data)。这会告诉shinny manualforecast数据已更改,因此可以在渲染函数中使用
- 然后创建一个renderObject(renderTable),调用input$inputname。这样你就可以得到更新的数据并做任何你想做的事情
关键代码行
hc_plotOptions(
series = list(
point = list(
events = list(
drop = JS("function(){
console.log(this.series)
window.data = _.map(this.series.data, function(e) { return e.y })
Shiny.onInputChange('inputname', data);
}"))
)))
然后:
renderDataTable({
...
var <- input$inputname # listening the drop event
...
renderDataTable({
...
var我只是在存储库中回答这个问题;)我只是在存储库中回答这个问题;)我真的很喜欢这个库,但是对于大型数据集(>100k点)渲染有点慢因此,我坚持使用动态图。是否会实现其他功能来支持大型数据集?@PorkChop Right hc不太好。Highcharts团队正在开发模块。我尝试创建此模块,但破坏了其他功能(可能我会单独实现此htmwidget/模块).dygraphs
也是一个很好的图表库,遗憾的是它只面向ts。是的,Boost很好,我记得有人也向Rcharts
建议过这个,Ramnath说他会研究它。总之,这个库做得很好!我真的很喜欢这个库,但是对于大型数据集(>100k点)渲染有点慢因此,我坚持使用动态图。是否会实现其他功能来支持大型数据集?@PorkChop Right hc不太好。Highcharts团队正在开发模块。我尝试创建此模块,但破坏了其他功能(可能我会单独实现此htmwidget/模块).dygraphs
也是一个很好的图表库,遗憾的是,它只面向ts。是的,Boost很好,我记得有人也向Rcharts
建议过这个,Ramnath说他会研究它。总之,这个库做得很好!