如何使用ggplot代表2个类别变量的%构建闪亮的应用程序

时间:2018-11-18 02:11:20

标签: r ggplot2 shiny

我在R中使用茶标准数据集,并希望创建一个闪亮的应用程序以表示2个变量及其%ge频率。

这是我的ggplot的R代码,可以正常工作,但是当我尝试将此代码封装为闪亮的时,似乎有问题。

ggplot(the, aes(x= clust,  group=breakfast)) + 
  geom_bar(aes(y = ..prop.., fill = factor(..x..)), stat="count") +
  geom_text(aes( label = scales::percent(..prop..),y= ..prop.. ), stat= "count", vjust = -.5) +
  labs(y = "Percent", fill="clust") +
  facet_grid(~breakfast) +
  scale_y_continuous(labels = scales::percent)

这是我闪亮的用户界面:非常简单高效

library(shiny)

# ----- UI ----------------------------
pageWithSidebar(
  headerPanel('Representer les variables'),
    sidebarPanel(
    selectInput('xcol', 'X Variable', names(the)),
    selectInput('ycol', 'Y Variable', names(the)),
    selected=names(the)[[2]]
  ),
  mainPanel(
    plotOutput('plot1')
  )

)

这是我无法使用的闪亮服务器:

library(shiny)
library(ggplot2)
library(tidyr)


# ---- Server ----------------------------------
server=shinyServer(function(input, output, session) {
  selectedData <- reactive({
    mutate(group_by(count(the, input$xcol, input$ycol)),
                             input$xcol, prop = n / sum(n))
                          })
  output$plot1 <- renderPlot({
    ggplot(selectedData()) +
      geom_col(aes_string(x = input$xcol, y = prop, fill =input$ycol),
               position = "dodge")
                             })
})

0 个答案:

没有答案