Использование функции типа запаса Highcharts для данных, отсутствующих на складе (R) - PullRequest
0 голосов
/ 15 октября 2018

Я работаю с временным рядом, который не является данными фондового рынка.Я хотел бы использовать Highcharter в R, чтобы сделать интерактивную визуализацию.На данный момент я создал такую ​​диаграмму:.

фиктивные данные

library(tidyverse)
library(highcharter)   


data(economics_long, package = "ggplot2")

economics_long2 <- filter(economics_long,
                          variable %in% c("pop", "uempmed", "unemploy"))

hchart(economics_long2, "line", hcaes(x = "date", y = "value01", group = "variable"))

Мне интересно, есть ли способ добавить фильтр даты вверху этой диаграммы, напримерфильтр даты в диаграмме type = 'stock' в highcharter.Нечто похожее на эту картинку: enter image description here

1 Ответ

0 голосов
/ 15 октября 2018

Я думаю, что в базовом решении вы можете создать собственный виджет / гаджет.Это своего рода начало для него - полностью функциональное - вы можете лучше его стилизовать под свои цели.

library(shiny)
library(miniUI)
library(highcharter)
library(tidyverse)


hightchart_filter <- function(data) {

  ui <- miniPage(
    miniContentPanel(

        # Dates ####
        dateInput("date_start", "start_date", value = "1900-01-01",   width = "25%"),
        dateInput("date_end", "end_date",  value = "2100-01-01", width = "25%"),

        # Highchart ####
        highchartOutput("high_plot", height = "500px")
      )
    )


  server <- function(input, output, session) {

    # update for data boxes
    updateDateInput(session, "date_start", value = data$date %>% min())
    updateDateInput(session, "date_end", value = data$date %>% max())

    # filter data
    data_filtered <- reactive({
      data %>% filter(between(date, input$date_start, input$date_end))
    })

    # Highchart ####
    output$high_plot <- renderHighchart({
      hchart(data_filtered(), "line", hcaes(x = "date", y = "value01", group = "variable"))
    })

  }

  runGadget(ui, server)
}

и запустить его:

hightchart_filter(economics_long)
...