我正在开发一款闪亮的应用,该应用的一部分会显示一个阴谋饼图
如果饼图中的值小于特定数字,是否可以显示文本而不是饼图
我能想到的是使用ifelse,但我不认为这是一种可行的方法
output$plot<-renderPlotly({
plot_ly(selection, labels = ~Country, values = ~Freq, type = 'pie') %>%
layout(title = paste0("Percentage of patients from"," ",selection$Country[selection$Country!='Rest of the countries']," ","v/s rest of the countries"),
xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))
})
数据框
Country Freq lon lat total q
India 4 78.96288 20.593684 299 1st Quantile(1-50 occurances
Rest of the countries 295 y y 299 y
答案 0 :(得分:1)
这是一种方法:
library(shiny)
library(plotly)
shinyApp(
ui = fluidPage(selectInput("select","Select:", choices=unique(mtcars$cyl), selected = c(6)),
uiOutput("plot1")),
server = function(input, output) {
data <- reactive({
data <- mtcars[mtcars$cyl %in% input$select,]
})
output$plot1 <- renderUI({
if(input$select < 6){
print("Error")
}else{
plotlyOutput("plot2")
}
})
output$plot2 <- renderPlotly({
plot_ly(data(), x = ~mpg, y = ~hp, color = ~cyl)
})
}
)
我刚刚使用了来自plotly
包(散点图)和mtcars
数据集的其他绘图类型,因为您没有提供可重现的示例,也没有提供数据。然而,主要概念是相同的,并且应该没有任何区别:我使用renderUI
表示if...else...
语句,如果cyl小于6,则打印错误,否则渲染图。
在你的情况下,而不是input$select
,你应该使用决定性的价值,如果我理解正确,那就是Freq。