闪亮的小提琴

时间:2018-10-29 08:59:02

标签: r shiny

以下是我要制作的闪亮的小复制示例:

    library(shiny)
library(ggplot2)

agedata <- c(10,10,20,20,10,30,31,32,20,30,30,40,30,21,23,23,12,23,23,44,33,22,11,22,44,33,34,34,32,23)
agegrou <- c("a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "b", "b", "b", "b", "b", "b", "b", "b", "b", "b", "c", "c", "c", "c", "c", "c", "c","c","c","c")
ageframe <- data.frame(agedata,agegrou)

ui <- fluidPage(
  checkboxGroupInput("grp", "Check the Group", c("a", "b", "c")),
  plotOutput("ageplot")
)

server <- function(input, output) {
  output$ageplot <- renderPlot({
    DATSET <- subset(ageframe, agegrou %in% input$grp)
    ggplot(DATSET, aes(x = agegrou, y = agedata)) + geom_violin()

  })
}

shinyApp(ui,server)

所以基本上,这是让用户单击多个组,然后绘制该组年龄的小提琴图。

现在的问题是,现实中使用的数据帧要大得多,包含数百万行和数十个组。因此,小提琴图通常会在百万行上进行多次计算,而这太慢了。

是否有一种方法可以预先计算大部分小提琴图(例如预先计算边界多边形),从而使闪亮的服务器不再需要在庞大的数据集上计算小提琴图?

我试图在github上查看geom_violin的代码,以查看是否可以以某种方式对其进行修改,但是看起来相当复杂。

0 个答案:

没有答案