R Leaflet:添加一个范围滑块来过滤没有闪亮的标记
R Leaflet: Add a Range Slider to Filter Markers without Shiny
我有一个如下所示的数据集。有没有办法在没有闪亮的情况下(例如任何 javascript 代码或传单插件)添加范围滑块以根据列中的值(例如日期变量)过滤点?类似于下面的代码,预期输出类似于下图。同样,我需要此功能而不使用 shiny。
data <- data.frame(id = c(1,2,3,4,5),
lat= c(50.9, 50.8, 50.5, 50.5, 51),
lon = c(-0.7, -0.92, -1, -0.8, -0.9),
date = c("2020-06-01", "2020-05-07", "2020-03-24", "2020-04-01", "2020-05-26"))
data %>%
leaflet() %>%
addProviderTiles(providers$CartoDB.Positron) %>%
addMarkers(lat=~lat, lng=~lon) %>%
addRangeSlider(~date)
预期输出格式:
根据@user2554330 的评论,这里有一个crosstalk
-解决方案。
---
title: "crossover test"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library( crosstalk )
library( leaflet )
library( dplyr )
```
```{r load data }
data <- data.frame(id = c(1,2,3,4,5),
lat= c(50.9, 50.8, 50.5, 50.5, 51),
lon = c(-0.7, -0.92, -1, -0.8, -0.9),
date = c("2020-06-01", "2020-05-07", "2020-03-24", "2020-04-01", "2020-05-26"))
data <- data %>% dplyr::mutate( date2 = as.numeric( as.Date( date ) ),
date3 = as.Date( date )
)
```
```{r maak shared data object}
shared_data <- SharedData$new( data )
```
```{r genereer output}
filter_slider("date", "Date", shared_data, ~date3, width = "100%")
leaflet(shared_data, width = "100%", height = 800) %>%
leaflet::addTiles() %>%
leaflet::addMarkers()
```
我有一个如下所示的数据集。有没有办法在没有闪亮的情况下(例如任何 javascript 代码或传单插件)添加范围滑块以根据列中的值(例如日期变量)过滤点?类似于下面的代码,预期输出类似于下图。同样,我需要此功能而不使用 shiny。
data <- data.frame(id = c(1,2,3,4,5),
lat= c(50.9, 50.8, 50.5, 50.5, 51),
lon = c(-0.7, -0.92, -1, -0.8, -0.9),
date = c("2020-06-01", "2020-05-07", "2020-03-24", "2020-04-01", "2020-05-26"))
data %>%
leaflet() %>%
addProviderTiles(providers$CartoDB.Positron) %>%
addMarkers(lat=~lat, lng=~lon) %>%
addRangeSlider(~date)
预期输出格式:
根据@user2554330 的评论,这里有一个crosstalk
-解决方案。
---
title: "crossover test"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library( crosstalk )
library( leaflet )
library( dplyr )
```
```{r load data }
data <- data.frame(id = c(1,2,3,4,5),
lat= c(50.9, 50.8, 50.5, 50.5, 51),
lon = c(-0.7, -0.92, -1, -0.8, -0.9),
date = c("2020-06-01", "2020-05-07", "2020-03-24", "2020-04-01", "2020-05-26"))
data <- data %>% dplyr::mutate( date2 = as.numeric( as.Date( date ) ),
date3 = as.Date( date )
)
```
```{r maak shared data object}
shared_data <- SharedData$new( data )
```
```{r genereer output}
filter_slider("date", "Date", shared_data, ~date3, width = "100%")
leaflet(shared_data, width = "100%", height = 800) %>%
leaflet::addTiles() %>%
leaflet::addMarkers()
```