我想同步两个R绘图的交互性:一个绘图绘图和一个传单地图。散点图绘制了传单地图中特定位置的时间序列。换句话说,我想在地图上选择一个位置(或一组位置),然后在绘图中看到相应的选择,反之亦然,在绘图中选择一个时间序列,然后在突出显示的地图中看到相应的标记。因此,双向。
附件文件(dataset1)是包含所有数据的R列表。列表的每个元素都是每个位置的数据集(时间序列)。这两个图的链接变量是“Codi.Estació”。
我已经尝试过使用相声程序包,但是作者警告说:“相声程序目前仅适用于显示单个数据点的视图的链接刷和过滤,而不能用于汇总或汇总视图”。我对单个数据点不感兴趣,但对整个时间序列不感兴趣。
有人可以帮助我如何处理吗?提示,示例,其他软件包(代替传单)是否受欢迎?
非常感谢您,并度过了一个愉快的夏日,
下载数据集:https://drive.google.com/file/d/1PkPm1ObcEer8Lne5vJMZR6MdFTONRSvY/view?usp=sharing
下载HTML输出:https://drive.google.com/open?id=1YHko4V-iAUZqZr3wNC7zGEdrMhjmykSA
R Markdown(* .Rmd)中的代码(在Rstudio中运行):
---
title: "Piezometers La Bisbal del Penedès "
author: "J.M. Campanera"
output:
flexdashboard::flex_dashboard:
orientation: columns
social: menu
---
```{r setup, include = FALSE}
library(plotly)
library(leaflet)
library(flexdashboard)
load("dataset1.RData")
```
Column {data-width=700}
-----------------------------------------------------------------------
### Water depth
```{r echo=FALSE}
# Plot 1
p<-plot_ly()
for (i in 1:length(dataset1)) {
p<-add_trace(p,name=dataset1[[i]]$Codi.Estació[1],x=dataset1[[i]]$Data,y=dataset1[[i]]$Valor,mode = 'scatter',type="scatter")
}
p
```
Column {data-width=300}
-----------------------------------------------------------------------
### well locations
```{r echo=FALSE}
m <- leaflet()
m<-addTiles(m)
for (i in 1:length(dataset1)) {
m<-addCircleMarkers(m,lng=dataset1[[i]]$Longitud[1], lat=dataset1[[i]]$Latitud[1],label=dataset1[[i]]$Codi.Estació[1],labelOptions = labelOptions(noHide = T, textOnly = TRUE),popup=as.character(dataset1[[i]]$Fondària.Pou..m.[1]))
}
m
```
答案 0 :(得分:1)
最后,我开发了一个解决方案: 1)在Plotly图中的交互性和在传单图中的突出显示: 我使用了功能“ event_data(event = c(“ plotly_click”))“,从中获得了灵感 https://plot.ly/r/shinyapp-plotly-events/
2)宣传单张地图中的交互性并在绘图中突出显示: 我使用了“ input $ map_marker_click”功能,并从这里得到了灵感:https://rstudio.github.io/leaflet/shiny.html
谢谢