使用Shiny和Highcharter开发交互式应用程序

3

我正在尝试使用shiny和R制作一个简单的应用程序,该应用程序只有一个高级图表,可以通过滑动条更改给定参数。 我已经查看了网页,但没有清晰的教程或简单的示例可以与我的代码进行比较。 这是我的代码:

library(shiny)
library(highcharter)
library(dplyr)

sigene_all = read_csv("res/significant_genes.csv")

ui <- fluidPage(
  titlePanel("Interactive Heatmap"),
  sidebarLayout(
    sidebarPanel(sliderInput(inputId = "slider", label = "Number of Cancers", min = 1, max = 12, value = 9)),
    mainPanel(highchartOutput("heatmap"))
  )
)

server <- function(input, output) {
  output$heatmap <- renderChart({
    hchart(sigene_all %>% filter(count >= input$slider),
           type = "heatmap", hcaes(x = gene, y = cancer_type, value = sgnf), name = "sgnf") %>% 
      hc_add_theme(hc_theme_darkunica())
  })
}

shinyApp(ui = ui, server = server)

这是我运行应用程序时遇到的错误:

警告:服务器错误:找不到函数“renderChart” 52: server [<..>/CTI/app.R#23] 错误:在server(...)中找不到函数“renderChart”

我一直在搜索,但没有找到相关信息。如果您能帮助我解决这个简单代码的问题,我将不胜感激。


我在服务器代码中应该使用renderHighchart而不是renderChart。 - Kimia H.
1个回答

2

您需要使用来自highcharter包的函数renderHighchart()来呈现图表,而不是renderChart()。您的代码应该如下所示:

library(shiny)
library(highcharter)
library(dplyr)

sigene_all = read_csv("res/significant_genes.csv")

ui <- fluidPage(
  titlePanel("Interactive Heatmap"),
  sidebarLayout(
    sidebarPanel(sliderInput(inputId = "slider", label = "Number of Cancers", min = 1, max = 12, value = 9)),
    mainPanel(highchartOutput("heatmap"))
  )
)

server <- function(input, output) {
  output$heatmap <- renderHighchart({
    hchart(sigene_all %>% filter(count >= input$slider),
           type = "heatmap", hcaes(x = gene, y = cancer_type, value = sgnf), name = "sgnf") %>% 
      hc_add_theme(hc_theme_darkunica())
  })
}

shinyApp(ui = ui, server = server)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接