我有一个由HighCharter软件包生成的Shiny图表。我要取消显示“无数据显示”消息,该消息在要绘制的系列为空时显示。在我的情况下,图表的实际内容显示为plotLines
(下面的变量age
)。但是,为了使HighCharter显示plotLines,它需要数据。这就是为什么要添加行(删除该行以了解我的意思)的原因:
%>% hc_series(list(data=c(), visible=FALSE, id="dummy"))
可以做到吗?
这里是一个使用reprex(venue="r")
的示例:我希望显示背景渐变和plotLines,但是应该隐藏“无数据可显示”消息。
library(shiny)
library(highcharter)
#> Highcharts (www.highcharts.com) is a Highsoft software product which is
#> not free for commercial and Governmental use
# layout
ui <- fluidPage(highchartOutput("highchart_slider", height = "200px"))
server <- function(input, output) {
# This value comes from the backend and is variable. It is in [-100, 100]
age <- 20
output$highchart_slider <- renderHighchart({
hcSlider <- highchart() %>%
hc_chart(renderTo= "container",
defaultSeriesType = 'bar',
plotBackgroundColor=list(
linearGradient = list(x1=0, x2=1, y1=0, y2=0),
stops=list(list(0, '#bf0000'),list(0.45, '#e1e218'),
list(0.55, '#e1e218'),list(1, 'darkgreen')))) %>%
hc_yAxis(tickInterval=100, min=-100, max=100,
plotLines=list(list(
label = list(text = "title", align = 'center', verticalAlign = 'top'),
color = "black", width = 4, value = age, y = -2))
) %>%
hc_series(list(data=c(), visible=FALSE, id="dummy"))
# display plot
hcSlider
})
}
# start the app
shinyApp(ui = ui, server = server)
#' <!--html_preserve-->
#' Shiny applications not supported in static R Markdown documents
#' <!--/html_preserve-->
答案 0 :(得分:0)
您的问题没有可重复的示例,但是据我了解,您希望在没有可用数据的时候阻止绘制图表?
我建议您调查req()
https://shiny.rstudio.com/articles/req.html
如果您希望仅在假设data
可用时才绘制图,
做
output$plot <- renderPlot({
req(data)
...
})
req不仅会在数据为NULL
或FALSE
时停止绘图,而且还会在用户没有选择数据的情况下停止