使用ggplot 2闪亮的剧情区域

时间:2017-01-09 05:33:08

标签: r ggplot2 shiny

您好我使用下面的代码,我使用底部的情节来过滤顶部的情节

示例数据: 标题: - 投诉ID;收到日期投诉;是监管投诉吗?天投诉是公开的;文本日投诉是开放的。

每个标题的值: -
973; 16年11月;没有; 0;投诉开放0天,
972; 16年11月;没有; 0;投诉开放0天,
971; 16年11月;没有; 0;投诉开放0天。

ui <- pageWithSidebar(

   # Application title
   headerPanel("Filter by month"),

   sidebarPanel(
         selectizeInput("YrMon",
                     "Filter by Month-Year:" ,
                     choices = unique(CCMS3$ccmsdate), "11-16", multiple = TRUE
                     ),


    radioButtons("Regcmp", "Regulatory Complaint :", choices = unique(CCMS3$Is.Regulatory.Complaint.),selected = 'No'),

         sliderInput(inputId="dayscmp", label="Days Complaint Open :", step=10,min = min(CCMS3$Days.Complaint.is.Open),max=max(CCMS3$Days.Complaint.is.Open),value = c(0,150))

   ),       
      mainPanel(
         plotOutput("histPlt"),
         plotOutput("histplt2", click = clickOpts(id="flt",clip = FALSE), dblclick = "sm"),       
         textOutput("asd")
         )
   )

server <- function(input, output) {


  library(dplyr)



  output$histPlt <- renderPlot({ 

  if(!is.even(length(input$flt)) & !is.null(input$flt))  {

  nwflt2 <- factor(CCMS$Text.Days.Complaint.is.Open)

  nwflt1 <- unique(nwflt2)

  nwflt <- nwflt1[round(input$flt$x)]

  ddd <- ({filter(CCMS3, Text.Days.Complaint.is.Open %in% nwflt & ccmsdate %in% input$YrMon & Is.Regulatory.Complaint. %in% input$Regcmp & Days.Complaint.is.Open %in% (input$dayscmp[1] : input$dayscmp[2]))})


  require(ggplot2)
  library(ggplot2)

  g <- ggplot(ddd, aes_string(x='ccmsdate'))

  plr <- g+geom_bar()+ylab("")+ggtitle("Number Of Complaints By Date")+xlab('Date(Year-Month)')+scale_x_discrete(labels= addline_format(c(unique(ddd$ccmsdate))),limits=c(unique(ddd$ccmsdate)))

  gg <- plr+theme(axis.text.x = element_text(size=10,colour="Blue",hjust=0.5,vjust=1),axis.ticks.y=element_blank(),panel.background=element_rect(fill="White",colour="Black"),panel.grid=element_blank())

  gg

   } else  

     { ddd <- ({filter(CCMS3, ccmsdate %in% input$YrMon & Is.Regulatory.Complaint. %in% input$Regcmp & Days.Complaint.is.Open %in% (input$dayscmp[1] : input$dayscmp[2]))})


   require(ggplot2)
   library(ggplot2)

   g <- ggplot(ddd, aes_string(x='ccmsdate'))

   plr <- g+geom_bar()+ylab("")+ggtitle("Number Of Complaints By Date")+xlab('Date(Year-Month)')+scale_x_discrete(labels= addline_format(c(unique(ddd$ccmsdate))),limits=c(unique(ddd$ccmsdate)))

   gg <- plr+theme(axis.text.x = element_text(size=10,colour="Blue",hjust=0.5,vjust=1),axis.ticks.y=element_blank(),panel.background=element_rect(fill="White",colour="Black"),panel.grid=element_blank())

   gg     }})

output$histplt2 <- renderPlot({ 

  ddd <- ({filter(CCMS3, ccmsdate %in% input$YrMon & Is.Regulatory.Complaint.%in% input$Regcmp & Days.Complaint.is.Open %in% (input$dayscmp[1] : input$dayscmp[2]))})

  g2 <- ggplot(ddd, aes_string(x='Text.Days.Complaint.is.Open'))

  plr2 <- g2+geom_bar()+ylab("")+ggtitle("Number Of Complaints By Complaints Open")+xlab('Date(Year-Month)')+scale_x_discrete(labels= addline_format(c(unique(ddd$Text.Days.Complaint.is.Open))),limits=c(unique(ddd$Text.Days.Complaint.is.Open)))

  gg2 <- plr2+theme(axis.text.x = element_text(size=10,colour="Blue",hjust=0.5,vjust=1),axis.ticks.y=element_blank(),panel.background=element_rect(fill="White",colour="Black"),panel.grid=element_blank())

  gg2

  })
}

现在我无法再次重置顶部的图形,直到我更改过滤器中的值。我想创建一些内容,如果用户点击绘制区域内的图形,那么它应该被过滤,否则如果它在绘图区域之外则不应该被过滤,顶部的图形也应该是未过滤的。

感谢任何帮助。

0 个答案:

没有答案