Разработка интерактивного приложения с использованием блеска и высокого чартера
Я пытаюсь сделать простое приложение с 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: сервер [<..>/ CTI / app.R # 23] Ошибка на сервере (...): не удалось найти функцию "renderChart"
Я искал, но я не нашел ничего связанного. Буду признателен, если вы поможете мне с этим простым кодом.
1 ответ
Вам нужно использовать функцию renderHighchart()
из пакета highcharter
визуализировать ваш график вместо 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)