Можно ли добавить / удалить линию графика на существующей диаграмме высокого уровня без полного перерисовывания диаграммы?
Код, приведенный ниже, изменен из демоверсии highcharter с добавлениемфлажок, управляющий внешним видом линии графика.
При нажатии на флажок линия добавляется / удаляется, однако вся диаграмма перерисовывается.Было бы хорошо, чтобы была добавлена / удалена только линия без перерисовки диаграммы.
library(shiny)
library(highcharter)
data(citytemp)
ui <- fluidPage(
h1("Highcharter Demo"),
fluidRow(
column(width = 4, class = "panel",
selectInput("type", label = "Type", width = "100%",
choices = c("line", "column", "bar", "spline")),
selectInput("stacked", label = "Stacked", width = "100%",
choices = c(FALSE, "normal", "percent")),
selectInput("theme", label = "Theme", width = "100%",
choices = c(FALSE, "fivethirtyeight", "economist",
"darkunica", "gridlight", "sandsignika",
"null", "handdrwran", "chalk")
),
checkboxInput("chk_plot_line", "Add a plot line")
),
column(width = 8,
highchartOutput("hcontainer",height = "500px")
)
)
)
server = function(input, output) {
output$hcontainer <- renderHighchart({
hc <- highcharts_demo() %>%
hc_chart(zoomType = "x") %>%
hc_rm_series("Berlin") %>%
hc_chart(type = input$type)
if (input$stacked != FALSE) {
hc <- hc %>%
hc_plotOptions(series = list(stacking = input$stacked))
}
if(input$chk_plot_line != FALSE){
hc <- hc %>%
hc_xAxis(title = list(text = "With a plot line"),
plotLines = list(
list(label = list(text = "This is a plotLine"),
color = "#FF0000",
width = 2,
value = 5.5)
)
)
}
if (input$theme != FALSE) {
theme <- switch(input$theme,
null = hc_theme_null(),
darkunica = hc_theme_darkunica(),
gridlight = hc_theme_gridlight(),
sandsignika = hc_theme_sandsignika(),
fivethirtyeight = hc_theme_538(),
economist = hc_theme_economist(),
chalk = hc_theme_chalk(),
handdrwran = hc_theme_handdrawn()
)
hc <- hc %>% hc_add_theme(theme)
}
hc
})
}
shinyApp(ui = ui, server = server)