国产日韩精品视频_2020久久国产最新免费观看_国内久久久久影院精品_日本一区二区视频在线

如何在R中用自己的plot\u click info替換渲染圖?

我的應用程序應該加載某些數據作為輸入文件(在本文中,我將給出以數據框形式編寫的部分數據,以便您可以使用它來運行我的示例)。然后繪制三個繪圖。我希望當用戶單擊頁面頂部的繪圖時,將根據單擊信息顯示第一個新繪圖,當顯示新繪圖時,我希望根據第一個新繪圖的單擊信息繪制第二個新繪圖。

library(dplyr)
library(shiny)
library(shinydashboard)
library(shinyWidgets)
library(ggplot2)
library(gridExtra)
library(scales)
library(grid)
library(RColorBrewer)
library(officer)
library(svglite)
library(rvg)
library(readxl)
library(tools)
library(rsvg)


body <- dashboardBody(
  fluidRow(
    tabBox(
      
      # The id lets us use input$tabset1 on the server to find the current tab
      id = "tabset1",height = 750,width=20,
      tabPanel("Summary",dataTableOutput(outputId = "table")),
      tabPanel("Visualization",sliderInput("scalegvt","Scale  Data by:",  min = 0, max = 100, value = c(70,100)),plotOutput("p1", height = 1000,click = "plot_click")
      )
    )
  )
)
  side<- dashboardSidebar(  
    width = 290,
    sidebarMenu(
      menuItem("Summary",tabName = "Summary") ,  
      uiOutput('choose_Da'),
      
      selectizeGroupUI(
        id = "m",
        inline = FALSE,
        params = list(
       Lot = list(inputId = "Lot", title = "Lot"),
          wafer = list(inputId = "wafer", title = "wafer"),
         M_datum = list(inputId = "M_Datum", title = "M_Datum"),
          Yield = list(inputId = "Yield", title = "Yield")
          
          
        )
      ),inline=FALSE,
      menuItem("Visualization",tabName = "Visualization")
      
    ))
  ui <- function(request) {
    
    dashboardPage(
      
      dashboardHeader(title = "Yield Report",titleWidth = 290),
      side,
      body
      
    )
  }
  
  server = function(input, output,session) { 
    
    
    
    newscale <- reactive({
      req(input$scalegvt)
    })
    
    mydt<-data.frame(Lot=c(rep("A",4),rep("b",5),rep("n",3),rep("x",2)),M_Datum=as.Date(c("2012-06-05","2012-06-15","2012-06-10","2014-11-17","2014-03-18","2014-06-15","2014-06-10","2014-06-17","2015-11-27","2016-08-15","2016-09-10","2016-10-27","2017-09-10","2017-10-12")),wafer=(c(rep(5,14)+1:14)),Yield=c(rep(10,14)+57))
  
  
dz<-reactive({
 req(res_mod())
  dat<-res_mod() 
  dt<-dat[dat$M_Datum >=input$dateRange[1] & dat$M_Datum <= input$dateRange[2],]
  
  
  dt[,2]<-as.Date(format(as.Date(dt[,2]), "%Y-%m-01"))
  
  req(dt$M_Datum,dt$Yield)
  dr<-data.frame("M_Datum"=dt$M_Datum,"Yield"=dt$Yield)
  
  req(dr$M_Datum,dr$Yield)
  dx<-aggregate(Yield~M_Datum,dr,mean)
  req(dx$M_Datum,dx$Yield)
  dx$M_Datum<-format(dx$M_Datum, "%b %Y")
  
  return(data.frame("M_Datum"=dx$M_Datum,"Yield"=dx$Yield))
  })


#observeEvent(input$plot_click,

#{ a<- reactive(nearPoints(dz(),  input$plot_click, threshold = 10, maxpoints = 1,
            # addDist = F))
# b<-reactive(match(substr(a()$M_Datum,1,3),month.abb))


# req(res_mod())
 #dat<-res_mod() 
 #dt<-dat[dat$M_Datum >=input$dateRange[1] & dat$M_Datum <= input$dateRange[2],]
 #dt<-dt[substr(dt$M_Datum,6,7)==as.character(b()),]
 
 
 
 
 #req(dt$Lot,dt$Yield)
 #dr<-data.frame("Lot"=dt$Lot,"Yield"=dt$Yield)
 
# req(dr$Lot,dr$Yield)
# dx<-aggregate(Yield~Lot,dr,mean)
# req(dx$Lot,dx$Yield)
 
# dza<-data.frame("Lot"=dx$Lot,"Yield"=dx$Yield)
# output$p2 <- renderPlot({  ggplot(dza, aes(x = Lot,y = Yield,group = 1)) +
 #  geom_point()})

 
#})
  
  
  
  
  
  
  
  
  
  

    

  
  
  
  
  output$choose_Da <- renderUI({
    dateRangeInput('dateRange',
                   label = 'Filter  by date',
                   start = min(mydt$M_Datum) , end = max(mydt$M_Datum),min=min(mydt$M_Datum),max=max(mydt$M_Datum)
    )
  })
  

 res_mod <- callModule(
    module = selectizeGroupServer,
    id = "m",
   data =  mydt,
    vars = c("Lot","M_Datum","Yield","wafer"),
   inline=FALSE
    
  )
  
  output$table <- renderDataTable({
    
    
   dato<-res_mod() 
    
    return(dato[dato$M_Datum >= input$dateRange[1] & dato$M_Datum <=  input$dateRange[2],]) },
    options = list(scrollX = TRUE))
  
  
  
  
  
  
  
  
  
  filtredplot<-reactive({
    
    req(res_mod())
    dat<-res_mod() 
    dt<-dat[dat$M_Datum >=input$dateRange[1] & dat$M_Datum <= input$dateRange[2],]
    
    
    dt[,2]<-as.Date(format(as.Date(dt[,2]), "%Y-%m-01"))
    
    req(dt$M_Datum,dt$Yield)
    dr<-data.frame("M_Datum"=dt$M_Datum,"Yield"=dt$Yield)
    
    req(dr$M_Datum,dr$Yield)
    dx<-aggregate(Yield~M_Datum,dr,mean)
    req(dx$M_Datum,dx$Yield)
    
    dz<-data.frame("M_Datum"=dx$M_Datum,"Yield"=dx$Yield)
    dz$M_Datum<-factor(format(dz$M_Datum, "%b %Y"), levels=format(sort(unique(dz$M_Datum)),"%b %Y"))
    hline_data <- data.frame(y = c(mean(dz$Yield)-sd(dz$Yield),mean(dz$Yield), mean(dz$Yield)+sd(dz$Yield)), type = factor(c(2, 1, 2)), 
                             stringsAsFactors = FALSE)
    ggplot(dz, aes(x=M_Datum, y=Yield,group = 1)) +
      geom_point(size=7,colour="#007A9D",shape=4) +
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     theme(axis.text.x = element_text(angle = 0, vjust = 0.5, hjust=1))+
                                                                                       
                                                                                       
                                                                                       
                                                                                       theme(legend.direction = "horizontal", legend.position = "top", legend.key = element_blank(), 
                                                                                             legend.background = element_rect(fill = "white", colour = "white"),
                                                                                             
                                                                                             axis.text.y.left = element_text(color = "#007A9D"),
                                                                                             axis.title.y.left  = element_text(color = "#007A9D"),
                                                                                             plot.title = element_text(color="#007A9D")
                                                                                       )+
                                                                                       
                                                                                       ylab("Mean Yield")+
                                                                                       xlab("")+
                                                                                       ggtitle(paste0("FCM-Yield Trend :","  ",paste0(c(input[["m-Customer_Name"]],input[["m-Local_Process_Id"]],input[["m-Process_Family"]],input[["m-MEMS_flag"]],input[["m-Device"]]),collapse = ",")))+
                                                                                       ylim(newscale())+
                                                                                       
                                                                                       
                                                                                       geom_hline(data = hline_data, 
                                                                                                  aes(yintercept = y, linetype = type, colour = type)) +
                                                                                       scale_colour_manual(values = c("#007A9D", "#EF783D"), 
                                                                                                           labels = c("Mean", "Mean+-sd"),
                                                                                                           name = "Key:") +
                                                                                       scale_linetype_manual(values = 1:2, 
                                                                                                             labels = c("Mean", "Mean+-sd"),
                                                                                                             name = "Key:")
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
  })
  
  
  output$p1<-renderPlot({
    
    
    filtredplot()                })
  }
  shinyApp(ui,server)

在代碼轉向注釋的那一部分中,我嘗試使用clik信息將月份名稱轉換為數字以使用它,以便過濾數據,這意味著我想繪制批次(x軸)與產量(作為y軸,以平均值(avarage)的形式)的圖,這樣我可以得到該月份產量pro批次的平均值,然后當我再次單擊時,我想得到第二個顯示產量的圖(y軸未按本次平均值聚合)與晶圓(x軸)的比較,當然,僅適用于通過單擊第一個新繪圖選擇的批次。

? 最佳回答:

發布的代碼不是最小的可復制示例MRE。我沒有經歷過。但這里有一個MRE來實現您描述的任務:使用nearPoints()函數基于第一個圖(p1)的plot_click輸出第二個圖(p2)。

library(shiny)
library(ggplot2)

data <- mpg  

ui <- basicPage(
  plotOutput("p1", click = "plot_click"),
  plotOutput("p2")
)

server <- function(input, output) {
  output$p1 <- renderPlot({    
    ggplot(data, aes(x = displ, y = cty)) + 
      geom_point()
  })
  
  observeEvent(input$plot_click,{ 
    a <- nearPoints(data,  
                    input$plot_click, 
                    threshold = 10, 
                    maxpoints = 1,
                    addDist = F)$model

    if (length(a) > 0) {
      df <- data[data$model == a, ]  
      output$p2 <- renderPlot({
        ggplot(df, aes(x = model, y = displ, group = 1)) +
          geom_point()
      })
    }
     
  })
  
}

shinyApp(ui, server)

以下是使用您的代碼編輯的上述解決方案。點擊p1會輸出第二個繪圖p2,點擊p2會輸出第三個繪圖p3。我把繪圖縮小了,因為我在筆記本電腦上工作。請注意,由于示例數據較小,并非所有數據點都會導致有效的單擊。但有足夠的“好”點來測試解決方案。

library(dplyr)
library(shiny)
library(shinydashboard)
library(shinyWidgets)
library(ggplot2)

body <- dashboardBody(
  fluidRow(
    tabBox(
      
      # The id lets us use input$tabset1 on the server to find the current tab
      id = "tabset1",height = 750,width=20,
      tabPanel("Summary",dataTableOutput(outputId = "table")),
      tabPanel("Visualization",
               sliderInput("scalegvt","Scale  Data by:",  min = 0, max = 100, value = c(70,100)),
               plotOutput("p1", height = 300, width = 300, click = "plot_click_p1"),
               plotOutput("p2", height = 300, width = 300, click = "plot_click_p2"),
               plotOutput("p3", height = 300, width = 300,)
      )
    )
  )
)
side <- dashboardSidebar(  
  width = 290,
  sidebarMenu(
    menuItem("Summary",tabName = "Summary") ,  
    uiOutput('choose_Da'),
    
    selectizeGroupUI(
      id = "m",
      inline = FALSE,
      params = list(
        Lot = list(inputId = "Lot", title = "Lot"),
        wafer = list(inputId = "wafer", title = "wafer"),
        M_datum = list(inputId = "M_Datum", title = "M_Datum"),
        Yield = list(inputId = "Yield", title = "Yield")
        
        
      )
    ),inline=FALSE,
    menuItem("Visualization",tabName = "Visualization")
    
  ))
ui <- function(request) {
  
  dashboardPage(
    
    dashboardHeader(title = "Yield Report",titleWidth = 290),
    side,
    body
    
  )
}

server = function(input, output,session) { 
  
  
  
  newscale <- reactive({
    req(input$scalegvt)
  })
  
  mydt<-data.frame(Lot=c(rep("A",4),rep("b",5),rep("n",3),rep("x",2)),M_Datum=as.Date(c("2012-06-05","2012-06-15","2012-06-10","2014-11-17","2014-03-18","2014-06-15","2014-06-10","2014-06-17","2015-11-27","2016-08-15","2016-09-10","2016-10-27","2017-09-10","2017-10-12")),wafer=(c(rep(5,14)+1:14)),Yield=c(rep(10,14)+57))
  
  
  dz<-reactive({
    req(res_mod())
    dat<-res_mod() 
    dt<-dat[dat$M_Datum >=input$dateRange[1] & dat$M_Datum <= input$dateRange[2],]
    
    
    dt[,2]<-as.Date(format(as.Date(dt[,2]), "%Y-%m-01"))
    
    req(dt$M_Datum,dt$Yield)
    dr<-data.frame("M_Datum"=dt$M_Datum,"Yield"=dt$Yield)
    
    req(dr$M_Datum,dr$Yield)
    dx<-aggregate(Yield~M_Datum,dr,mean)
    req(dx$M_Datum,dx$Yield)
    dx$M_Datum<-format(dx$M_Datum, "%b %Y")
    
    return(data.frame("M_Datum"=dx$M_Datum,"Yield"=dx$Yield))
  })
  
  
  observeEvent(input$plot_click_p1, { 
    a <- nearPoints(dz(),  
                    input$plot_click_p1, 
                    threshold = 10, 
                    maxpoints = 1,
                    addDist = F)
    
    b <- match(substr(a$M_Datum,1,3),month.abb)
    
    req(res_mod())
    dat <- res_mod() 
    dt  <- dat[dat$M_Datum >=input$dateRange[1] & dat$M_Datum <= input$dateRange[2],]
    dt  <- dt[substr(dt$M_Datum,6,7)==as.character(b),]
    
    req(dt$Lot, dt$Yield)
    dr <- data.frame("Lot"=dt$Lot,"Yield"=dt$Yield)
  
    req(dr$Lot, dr$Yield)
    dx <- aggregate(Yield~Lot,dr,mean)
    
    req(dx$Lot,dx$Yield)
    dza <- data.frame("Lot"=dx$Lot,"Yield"=dx$Yield)
    
    output$p2 <- renderPlot({  
      ggplot(dza, aes(x = Lot,y = Yield,group = 1)) +
      geom_point()
    })
  
  })
  
  observeEvent(input$plot_click_p2, {
    output$p3 <- renderPlot({
      
      
      test <- nearPoints(mydt,  
                 input$plot_click_p2, 
                 threshold = 10, 
                 maxpoints = 1,
                 addDist = F)
      
      str(test)
      ggplot(test, aes(x = Lot, y = Yield)) +
        geom_point()
    })
  })

  output$choose_Da <- renderUI({
    dateRangeInput('dateRange',
                   label = 'Filter  by date',
                   start = min(mydt$M_Datum) , end = max(mydt$M_Datum),min=min(mydt$M_Datum),max=max(mydt$M_Datum)
    )
  })
  
  
  res_mod <- callModule(
    module = selectizeGroupServer,
    id = "m",
    data =  mydt,
    vars = c("Lot","M_Datum","Yield","wafer"),
    inline=FALSE
    
  )
  
  output$table <- renderDataTable({
    
    dato <- res_mod() 
    return(dato[dato$M_Datum >= input$dateRange[1] & dato$M_Datum <=  input$dateRange[2],]) 
    
  },options = list(scrollX = TRUE))

  filtredplot <- reactive({
    
    req(res_mod())
    dat <- res_mod() 
    dt <- dat[dat$M_Datum >=input$dateRange[1] & dat$M_Datum <= input$dateRange[2],]
    
    
    dt[,2] <- as.Date(format(as.Date(dt[,2]), "%Y-%m-01"))
    
    req(dt$M_Datum,dt$Yield)
    dr<-data.frame("M_Datum"=dt$M_Datum,"Yield"=dt$Yield)
    
    req(dr$M_Datum,dr$Yield)
    dx<-aggregate(Yield~M_Datum,dr,mean)
    req(dx$M_Datum,dx$Yield)
    
    dz<-data.frame("M_Datum"=dx$M_Datum,"Yield"=dx$Yield)
    dz$M_Datum<-factor(format(dz$M_Datum, "%b %Y"), levels=format(sort(unique(dz$M_Datum)),"%b %Y"))
    hline_data <- data.frame(y = c(mean(dz$Yield)-sd(dz$Yield),mean(dz$Yield), mean(dz$Yield)+sd(dz$Yield)), type = factor(c(2, 1, 2)), 
                             stringsAsFactors = FALSE)
    ggplot(dz, aes(x=M_Datum, y=Yield,group = 1)) +
      geom_point(size=7,colour="#007A9D",shape=4) +
      theme(axis.text.x = element_text(angle = 0, vjust = 0.5, hjust=1))+
      theme(legend.direction = "horizontal", legend.position = "top", legend.key = element_blank(), 
            legend.background = element_rect(fill = "white", colour = "white"),
            axis.text.y.left = element_text(color = "#007A9D"),
            axis.title.y.left  = element_text(color = "#007A9D"),
            plot.title = element_text(color="#007A9D")
      ) +
      ylab("Mean Yield")+
      xlab("")+
      ggtitle(paste0("FCM-Yield Trend :","  ",paste0(c(input[["m-Customer_Name"]],input[["m-Local_Process_Id"]],input[["m-Process_Family"]],input[["m-MEMS_flag"]],input[["m-Device"]]),collapse = ",")))+
      ylim(newscale())+
      geom_hline(data = hline_data, 
                 aes(yintercept = y, linetype = type, colour = type)) +
      scale_colour_manual(values = c("#007A9D", "#EF783D"), 
                          labels = c("Mean", "Mean+-sd"),
                          name = "Key:") +
      scale_linetype_manual(values = 1:2, 
                            labels = c("Mean", "Mean+-sd"),
                            name = "Key:")
  })
  
  output$p1 <- renderPlot({
    filtredplot()                
  })
}

shinyApp(ui,server)
国产日韩精品视频_2020久久国产最新免费观看_国内久久久久影院精品_日本一区二区视频在线

欧美日韩a区| 国产午夜精品全部视频播放| 国内揄拍国内精品少妇国语| 国产精品www色诱视频| 国产欧美1区2区3区| 狠狠综合久久av一区二区小说 | 国产精品一区免费在线观看| 国产一区二区成人| 亚洲激情国产| 一区二区免费在线播放| 在线一区二区三区四区| 欧美一区二区高清| 免费欧美视频| 国产精品久久久久久久久久妞妞| 国产日产高清欧美一区二区三区| 韩国久久久久| 99riav1国产精品视频| 欧美专区在线观看一区| 欧美久久电影| 国产日韩欧美亚洲| 亚洲精品一区二区三区婷婷月 | 欧美一二三视频| 免费人成精品欧美精品| 欧美日韩www| 黄色精品一区| 亚洲欧美资源在线| 欧美激情欧美激情在线五月| 国产伦精品一区二区三区四区免费| 怡红院av一区二区三区| 亚洲视屏在线播放| 欧美精品久久一区二区| 国产视频一区欧美| 亚洲一区日韩| 欧美日韩国产美女| 亚洲欧洲日韩在线| 久久三级视频| 国产视频不卡| 亚洲一区二区四区| 欧美精品久久一区| 亚洲福利视频网站| 久久久精品性| 国产在线精品自拍| 午夜精品婷婷| 国产精品国产三级国产aⅴ浪潮| 亚洲国产黄色| 狂野欧美激情性xxxx欧美| 国产婷婷色一区二区三区| 亚洲在线中文字幕| 欧美日韩免费观看一区二区三区| 在线精品高清中文字幕| 久久久久久久久久久久久9999| 国产精品欧美一区喷水| 亚洲一区二区三区激情| 欧美视频在线视频| 亚洲午夜国产一区99re久久| 欧美日韩国产不卡在线看| 亚洲精品影院在线观看| 你懂的亚洲视频| 亚洲福利视频网站| 欧美a级在线| 亚洲精品美女久久7777777| 欧美精品亚洲| 一区二区三区精品视频在线观看| 欧美精品在线网站| 在线亚洲高清视频| 国产精品综合色区在线观看| 亚洲欧美在线视频观看| 国产欧美日韩一区二区三区在线| 欧美一区二区在线| 在线电影一区| 欧美韩日一区| 亚洲视频在线二区| 国产精品综合| 久久人人爽人人爽| 亚洲国产综合视频在线观看| 欧美日韩国产一区二区| 亚洲男人的天堂在线aⅴ视频| 国产亚洲精品bv在线观看| 麻豆精品精华液| 99精品视频一区| 国产精品永久免费| 免费观看日韩av| 中文网丁香综合网| 国产一区在线看| 欧美国产免费| 亚洲午夜av| 在线电影欧美日韩一区二区私密| 欧美国产欧美综合| 欧美一区二区在线看| 亚洲精品一区二区三区樱花| 国产拍揄自揄精品视频麻豆| 欧美大香线蕉线伊人久久国产精品| 99re亚洲国产精品| 国产综合欧美| 欧美色大人视频| 久久久国产精品一区二区中文| 亚洲美女诱惑| 激情婷婷欧美| 国产精品一区二区久久久久| 欧美激情视频网站| 久久久伊人欧美| 亚洲影视在线播放| 亚洲精品偷拍| 欲色影视综合吧| 国产欧美成人| 国产精品video| 欧美精品系列| 美女黄网久久| 国产日韩在线播放| 久久免费高清视频| 亚洲精品美女久久7777777| 欧美精品粉嫩高潮一区二区 | 亚洲人成网站在线观看播放| 欧美另类videos死尸| 亚洲一区二区三区午夜| 国产日韩在线不卡| 99热在这里有精品免费| 国产精品亚洲网站| 国产精品mm| 欧美视频在线观看免费网址| 欧美二区在线观看| 欧美成人国产一区二区| 久久免费视频在线观看| 久久久999精品免费| 欧美在线一级va免费观看| 久久久九九九九| 亚洲第一中文字幕在线观看| 欧美欧美全黄| 亚洲欧美制服另类日韩| 91久久精品美女| 国产精品美女久久久久av超清 | 欧美一区二区视频97| 亚洲欧洲美洲综合色网| 国产精品综合视频| 欧美激情一区二区三区| 久久精品国产999大香线蕉| 亚洲激情av| 国产亚洲欧美日韩精品| 欧美日韩免费观看一区=区三区| 久久精品综合| 午夜精品在线观看| 99精品视频免费全部在线| 在线看国产一区| 欧美一级视频| 一本色道久久88亚洲综合88| 国内自拍一区| 国产欧美日韩综合| 国产精品久久久久久久久久免费看| 蜜桃精品一区二区三区| 久久精品99国产精品日本 | 欧美视频不卡| 欧美激情一区三区| 欧美成人中文| 欧美福利一区二区三区| 久久亚洲春色中文字幕| 久久精品国产综合| 午夜精品在线观看| 性欧美大战久久久久久久久| 亚洲永久免费精品| 在线一区欧美| 中文在线资源观看网站视频免费不卡 | 国产精品高精视频免费| 欧美日韩免费观看一区| 欧美日韩国产经典色站一区二区三区| 美女脱光内衣内裤视频久久网站| 久久er99精品| 国产伪娘ts一区| 国产精品亚洲不卡a| 亚洲国产美女久久久久| 亚洲欧美在线免费| 欧美激情一区二区三区四区| 国产欧美三级| 一本久道综合久久精品| 久久精品亚洲国产奇米99| 欧美激情麻豆| 国内精品国语自产拍在线观看| 日韩午夜中文字幕| 久久精品亚洲国产奇米99| 欧美日韩精品综合| 18成人免费观看视频| 午夜视频一区二区| 欧美日韩一区二区三区在线观看免| 国产综合精品一区| 亚洲私人黄色宅男| 欧美成人一区二免费视频软件| 国产性做久久久久久| 亚洲图片自拍偷拍| 欧美日韩成人在线| 亚洲黄色一区| 两个人的视频www国产精品| 国产欧美日韩亚洲| 亚洲午夜国产一区99re久久| 欧美国产一区二区三区激情无套| 狠狠色2019综合网| 欧美有码视频| 国产情人节一区| 午夜精品久久久久久久99热浪潮 | 久久九九国产精品| 国产亚洲美州欧州综合国| 亚洲免费影视|