【问题标题】:R Leaflet: Add a Range Slider to Filter Markers without ShinyR Leaflet:添加范围滑块以过滤没有闪亮的标记
【发布时间】:2020-07-11 12:43:32
【问题描述】:

我有一个如下所示的数据集。有没有一种没有闪亮的方法(例如任何 javascript 代码或传单插件)来添加范围滑块以根据列中的值(例如 Date 变量)过滤点?类似于下面代码中的内容,预期输出类似于下图。同样,我需要这个功能而不使用闪亮。

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)

预期的输出格式:

【问题讨论】:

  • 您可以使用crosstalk 包。它在rstudio.github.io/crosstalk 上的第一个例子看起来像你想要的。
  • 看起来你需要这个插件...dwilhelm89.github.io/LeafletSlider你可以尝试在 R 中工作。
  • 谢谢@user2554330 这正是我需要的!我很惊讶我没有早点遇到它。
  • 谢谢@Wimpel。我会看看这是否可以与 R 一起使用。

标签: javascript r leaflet r-leaflet


【解决方案1】:

根据@user2554330 的评论,这里有一个crosstalk-solution。

---
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() 
```

【讨论】:

    猜你喜欢
    • 2016-11-17
    • 1970-01-01
    • 2020-05-14
    • 2019-12-09
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    相关资源
    最近更新 更多