r - 在启动 Highcharts R 上隐藏特定行
问题描述
我有一个数据框,其中有 4 个变量,我在 Shiny 应用程序启动时绘制这些变量。但是我想在启动时隐藏其中的一些,以便“价格”是唯一绘制的变量。我正在使用 highchart 包。
我相信我找到了所需的 java 脚本代码,但我不确定如何将它插入到 highchart 函数中。
下面是我的代码与当前输出与所需输出。数据在底部
data %>% hchart("line", hcaes(x = date, y = Value, group = Variable))%>% hc_add_theme(hc_theme_ffx())
这是我认为适合我在某处调用的 JS 代码:
"series: [{
name: 'Value',
data: '[iv30, iv60, Hvol20]',
visible: false
}]"
这是我的数据示例:
data = structure(list(date = structure(c(18180, 18179, 18178, 18177,
18176, 18173, 18172, 18171, 18170, 18169, 18180, 18179, 18178,
18177, 18176, 18173, 18172, 18171, 18170, 18169, 18180, 18179,
18178, 18177, 18176, 18173, 18172, 18171, 18170, 18169, 18180,
18179, 18178, 18177, 18176, 18173, 18172, 18171, 18170, 18169
), class = "Date"), Variable = c("Hvol20", "Hvol20", "Hvol20",
"Hvol20", "Hvol20", "Hvol20", "Hvol20", "Hvol20", "Hvol20", "Hvol20",
"iv30", "iv30", "iv30", "iv30", "iv30", "iv30", "iv30", "iv30",
"iv30", "iv30", "iv60", "iv60", "iv60", "iv60", "iv60", "iv60",
"iv60", "iv60", "iv60", "iv60", "Price", "Price", "Price", "Price",
"Price", "Price", "Price", "Price", "Price", "Price"), Value = c(13.95,
13.63, 13.46, 13.26, 12.72, 12.65, 12.03, 11.99, 11.13, 10.31,
13.83, 16.31, 16.71, 17.91, 15.19, 15.08, 17.87, 18.48, 15.9,
13.75, 14.69, 16.52, 17.09, 18.16, 16.23, 15.75, 18, 18.9, 16.76,
15.63, 296.7, 293.24, 291.32, 288.67, 293.08, 294.4, 290.42,
288.06, 293.24, 296.77)), row.names = c(NA, -40L), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"), groups = structure(list(Variable = c("Hvol20",
"iv30", "iv60", "Price"), .rows = list(1:10, 11:20, 21:30, 31:40)), row.names = c(NA,
-4L), class = c("tbl_df", "tbl", "data.frame"), .drop = TRUE))
解决方案
我的做法并不是一个完美的解决方案。实际上,这种解决方法有点有趣,因为您的要求在 R 中似乎很简单,但我不是 R 开发人员,我只知道如何在 R 中使用 JavaScript 代码。
我刚刚编写了一个 JavaScript 函数,它在第一次加载图表时隐藏你的前 3 个系列。我使用 JS("") 函数将我的 JavaScript 代码注入到 R 中。
data %>% hchart("line", hcaes(x = date, y = Value, group = Variable))%>% hc_add_theme(hc_theme_ffx()) %>%
hc_chart(
events = list(
load = JS("function() {
this.series.forEach(function(series, i) {
if (i < 3) {
series.hide();
}
});
}")
)
)
它...有效 :D 但如果您需要更好的解决方案,您需要知道如何在 R 中解析数据的人。
推荐阅读
- asp.net - 如何使用 TFS 2013 和 Release Management 2013 构建和发布 ASP.NET Core 2.1 应用程序?
- java - 找到了类 org.eclipse.jetty.websocket.api.UpgradeRequest,但是接口是预期的
- javascript - 如果只返回一个对象,API 调用在 TypeScript 上不起作用
- javascript - 我在 JS 上训练神经网络失败
- c# - iTextSharp - 从 PictureBox 控件中获取图像并将其插入 PDF 文件
- c# - c# - 基于参数类型的不同函数覆盖
- paypal - 用户授权 PayPal 付款后添加运费
- python - Python Pony Orm 测试表是否为空
- javascript - 如何合并外部 JavaScript 文件
- dart - Flutter中如何实现Dropdown的这种设计