r - 对非股票数据使用 Highcharts 股票类型功能 (R)
问题描述
我正在处理不是股票市场数据的时间序列。我想在 R 中使用 highcharter 进行交互式可视化。我暂时做了一个这样的图表:。
虚拟数据
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"))
我想知道,有什么方法可以在此图表顶部添加日期过滤器,例如 highcharter 中 type = 'stock' 图表中的日期过滤器。类似于这张图片的东西:
解决方案
我认为在基本解决方案中,您可以创建自己的小部件/小工具。这是它的开始 - 功能齐全 - 您可以根据您的目的更好地设计它。
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)
推荐阅读
- apache-spark - 使用 spark-submit 在 Spark RDD 上执行 NLTK 时出错
- pandas - 如何对索引包含重复值的 2 列表进行透视
- amazon-web-services - 通过 .Net Core Serverless Lambda API 读取 SQS 消息
- javascript - 通过 Puppeteer 抓取网站返回 undefined
- kubernetes - 在 Kubernetes nginx 入口后面的 GRPC 服务中获取客户端 IP 地址
- encoding - 什么时候固定长度编码比霍夫曼更好?
- r - 查找数据的平均值时引用一个 for 循环值
- angular - 使用参数访问预定义的孩子
- angular - Angular SlickGrid 日期范围过滤器不起作用
- reactjs - 从 React 导入命名导出不适用于 Flow 类型