r - 如何创建“操作按钮”以重置 ECharts2Shiny 条形图中的选择
问题描述
我想将选择重置为条形图。这是我的代码:
library(shiny)
library(shinydashboard)
library(ECharts2Shiny)
demo <- data.frame(c(5,0,0,1,20,25,14,1,53),
c(1,1,1,2,12,22,5,1,25),
c(6,0,0,3,26,38,19,2,65),
c(0,0,0,0,5,3,0,0,6),
c(0,1,1,0,1,6,0,0,7),
c(6,0,1,3,32,47,19,2,78),
c(2,0,0,1,8,13,10,1,33),
c(0,0,0,0,0,9,2,0,4),
c(1,0,0,1,6,4,6,0,23))
names(demo) <- c("M", "F", "O", "B", "C", "Re", "Vi", "Ac", "Co")
row.names(demo) <- c("Az","Bh", "Bi", "Ch", "Ha", "Ka", "N.G", "Ra", "Su")
ui <- mainPanel(tabPanel(h5("Block wise"), loadEChartsLibrary(),
tags$div(id="demo1", style="width:100%;height:500px;"), deliverChart(div_id=
"demo1"),downloadButton("downloadData", "Download Data")))
server <- shinyServer(function(input,output){
renderBarChart(div_id = "demo1", grid_left = '1%', direction =
"vertical", data = demo)})
shinyApp(ui,server)
如何创建一个重置按钮来取消选择属性?我还需要帮助以 excel csv 格式下载数据。下载数据按钮会弹出一个窗口,要求保存文件,但不允许我们选择“文件名”输入栏下方的“另存为类型”。
提前致谢
解决方案
可以通过shinyjs
执行js
代码来重置绘图:location.reload();
downloadButton 必须具有服务器组件才能以给定的文件格式保存数据。
library(shiny)
library(shinydashboard)
library(ECharts2Shiny)
library(shinyjs)
demo <- data.frame(c(5,0,0,1,20,25,14,1,53),
c(1,1,1,2,12,22,5,1,25),
c(6,0,0,3,26,38,19,2,65),
c(0,0,0,0,5,3,0,0,6),
c(0,1,1,0,1,6,0,0,7),
c(6,0,1,3,32,47,19,2,78),
c(2,0,0,1,8,13,10,1,33),
c(0,0,0,0,0,9,2,0,4),
c(1,0,0,1,6,4,6,0,23))
names(demo) <- c("M", "F", "O", "B", "C", "Re", "Vi", "Ac", "Co")
row.names(demo) <- c("Az","Bh", "Bi", "Ch", "Ha", "Ka", "N.G", "Ra", "Su")
ui <- mainPanel( shinyjs::useShinyjs(),
tabPanel(h5("Block wise"), loadEChartsLibrary(),
actionButton("reset","reset plot"),
tags$div(id="demo1", style="width:100%;height:500px;"),
deliverChart(div_id="demo1"),
downloadButton("downloadData", "Download Data")))
server <- shinyServer(function(input,output){
observeEvent(input$reset,{
shinyjs::runjs("location.reload();")
})
output$downloadData <- downloadHandler(
filename = function() {
paste('data-', Sys.Date(), '.csv', sep='')
},
content = function(con) {
write.csv(demo, con)
}
)
renderBarChart(div_id = "demo1", grid_left = '1%', direction =
"vertical", data = demo)})
shinyApp(ui,server)
推荐阅读
- python - 如何将此 Python 2.7 代码转换为 Python 3?
- python - Python XML 解析器不返回 XML 元素
- r - 如何用数据拟合 Black-Scholes 期权定价曲线?
- sql - 计算创建日期和付款日期之间的网络天数的查询永远需要执行
- android - 如何在 Gradle (Android Studio) 中从打包中排除一个文件
- php - 使用 PHP 的天数差异检查器
- flutter - 如何从以前的非 Flutter 版本的应用程序访问 shared_preferences KVP
- batch-file - 合并 Windows CMD BAT 文件
- r - 将数据框转换为空间对象
- html - CSS text-align:左侧无法正常工作