R 如何通过单击的标记筛选传单弹出图

R 如何通过单击的标记筛选传单弹出图,r,ggplot2,shiny,r-leaflet,R,Ggplot2,Shiny,R Leaflet,当在R闪亮传单应用程序中单击addAwesomeMarkers标记时,如何根据addAwesomeMarkers标准过滤ggplot(通过调用popupGraph呈现) 我尝试过过滤renderLeaflet之外的数据,但这会以错误的顺序调用所有内容;我尝试过在popupGraph中进行过滤,但在那里我也没有运气。 我在下面列出了一个简化的例子;单击标记将显示当前所有数据的绘图,目前未尝试过滤。如何通过addawemomemarkers标签中显示的rep_id过滤ggplot 数据只是两个简单的

当在R闪亮传单应用程序中单击
addAwesomeMarkers
标记时,如何根据
addAwesomeMarkers
标准过滤
ggplot
(通过调用
popupGraph
呈现)

我尝试过过滤
renderLeaflet
之外的数据,但这会以错误的顺序调用所有内容;我尝试过在
popupGraph
中进行过滤,但在那里我也没有运气。 我在下面列出了一个简化的例子;单击标记将显示当前所有数据的绘图,目前未尝试过滤。如何通过
addawemomemarkers
标签中显示的
rep_id
过滤
ggplot

数据只是两个简单的集合。 10个带ID的地理记录- 销售tbl只是每个代表id的一些快速月度销售

# setup
library(tidyverse)
library(stringi)
library(leaflet)
library(leafpop)
library(lubridate)
library(shiny)
icon.tmz <- makeAwesomeIcon(icon = 'home',      markerColor = 'lightblue',   library = 'fa',  iconColor = 'black')


# rep dataset
repper <- function(){
  tibble(
    lat = jitter(-26.19, amount = 1.5),
    lng = jitter(28.03, amount = 1.5),
  ) %>% 
    bind_cols(rep_id = paste0('rep_id_', stri_rand_strings(1, 6, pattern = "[A-Z0-9]")))
   }

reps <- repper()  
for(i in 1:9){reps <- bind_rows(reps, repper())}
 
# sales dataset

sales_tbl <- tibble(
  month  = ymd(),
  sales  = integer(),
  rep_id = character()
)

for(rep in 1:nrow(reps)){
  
  repper <- reps %>% slice(rep)
  
  mnthly_sales <- sample(50000:120000, 12, replace = T)
  
  month_abb <- ymd(paste0('2019/', 1:12, '/01'))
  
  sales_tbl_rep <- tibble(
    month = month_abb
  ) %>% 
    mutate(sales = mnthly_sales)  %>% 
    mutate(rep_id = repper$rep_id)
  
  sales_tbl <- sales_tbl %>% 
    bind_rows(sales_tbl_rep)
  
}


# app
ui <- ui <- bootstrapPage(
  leafletOutput('outpt_jbrg')
)
  
  

server <- function(input, output, session) {
  
  sales_plot_rctv <- reactive({
    
    sales_tbl %>% 
      ggplot(aes(month, sales)) +
      geom_bar(stat = 'identity', fill = '#126ba6') 
    
  })
  
  output$outpt_jbrg <- renderLeaflet({
    
    leaflet(reps) %>% 
      addTiles()  %>% 
      addAwesomeMarkers(data = reps,
                        lng = ~ lng,
                        lat = ~ lat,
                        label = ~ rep_id ,
                        icon  = icon.tmz,
                        popup = popupGraph(sales_plot_rctv(),
                                           width = 200,
                                           height = 100
                        )
      )
    
    
  })
  
}

shinyApp(ui = ui, server = server)
#设置
图书馆(tidyverse)
图书馆(stringi)
图书馆(单张)
图书馆(leafpop)
图书馆(lubridate)
图书馆(闪亮)
icon.tmz