2016-02-19 13 views
7

Có cách nào để thực hiện thanh trượt thời gian cho Leaflet hoặc bất kỳ thư viện bản đồ tương tác nào khác trong R không? Tôi có dữ liệu được sắp xếp theo chuỗi thời gian và muốn tích hợp nó vào bản đồ "chuyển động", nơi các điểm âm mưu thay đổi theo thời gian.R: Bản đồ với Thanh trượt thời gian?

Tôi đã nghĩ đến việc chia nhỏ dữ liệu thành nhiều phần, sử dụng tập con để nắm bắt bảng dữ liệu tương ứng cho mỗi tháng. Nhưng làm cách nào tôi di chuyển giữa các tập dữ liệu khác nhau tương ứng với các tháng khác nhau?

Hiện tại, tôi lấy điểm trung bình và vẽ các điểm đó, nhưng tôi muốn tạo bản đồ tích hợp chuỗi thời gian.

Đây là mã của tôi cho đến nay:

data<-read.csv("Stericycle Waste Data.csv") 
library(reshape2) 
library(ggplot2) 
library(plyr) 
library(ggmap) 
names(data)<-c("ID1","ID2", "Site.Address", "Type", "City", "Province", "Category", "Density", "Nov-14", "Dec-14", "Jan-15", "Feb-15", "Mar-15", "Apr-15", "May-15", "Jun-15", "Jul-15", "Aug-15", "Sep-15", "Oct-15", "Nov-15", "Dec-15", "Jan-16") 
data<-melt(data, c("ID1","ID2", "Site.Address","Type", "City", "Province", "Category", "Density")) 
data<-na.omit(data) 
data_grouped<-ddply(data, c("Site.Address", "Type","City", "Province", "Category", "Density", "variable"), summarise, value=sum(value)) 
names(data_grouped)<-c("Site.Address", "Type", "City", "Province", "Category", "Density", "Month", 'Waste.Mass') 

dummy<-read.csv('locations-coordinates.csv') 
geodata<-merge(data_grouped, dummy, by.x="Site.Address", by.y="Site.Address", all.y=TRUE) 

library(leaflet) 
d = geodata_avg$density_factor 
d = factor(d) 
cols <- rainbow(length(levels(d)), alpha=NULL) 
geodata_avg$colors <- cols[unclass(d)] 
newmap <- leaflet(data=geodata_avg) %>% addTiles() %>% 
addCircleMarkers(lng = ~lon, lat = ~lat, weight = 1, radius = ~rank*1.1, color = ~colors, popup = paste("Site Address: ", geodata_avg$Site.Address, "<br>", "Category: ", geodata_avg$Category, "<br>", "Average Waste: ", geodata_avg$value)) 
newmap 

Cảm ơn trước! Bất kỳ hướng dẫn/hiểu biết nào sẽ được đánh giá cao.

+1

đây là một ý tưởng, vì bạn đã đề xuất bạn có thể chia tập dữ liệu theo tháng và thêm các tập hợp con này làm lớp trên bản đồ của bạn (https://rstudio.github.io /leaflet/showhide.html); sau đó bạn có thể nhấp/bỏ lớp mà bạn muốn hiển thị – MLavoie

+0

Có một ví dụ tại đây (http://dwilhelm89.github.io/LeafletSlider/). Thanh trượt nằm ở góc trên cùng bên phải của bản đồ. (Nó không phải là một thực hiện R mặc dù ...) – jbaums

+0

Cảm ơn. Tôi thực sự thích những ý tưởng! Tôi sẽ thử sử dụng gợi ý lớp. Tôi thích thanh trượt thời gian hơn, nhưng tôi nghĩ đó là một ứng dụng java, thật đáng buồn là không có trong lĩnh vực kiến ​​thức của tôi. –

Trả lời

-3

Hãy thử gói "thao tác" trong R. Tôi không chắc liệu nó có hiệu quả cho tờ rơi hay không? nhưng nó sẽ làm việc cho các lô bình thường và ggplot.

Xin cảm ơn, Naveen.

0

Here là câu trả lời có thể hữu ích.

Hoặc, bạn có thể cung cấp chuỗi thời gian của một điểm làm biểu đồ bật lên bằng cách sử dụng mapview::popupGraph. Bạn cũng có thể cung cấp đồ thị dựa trên htmlwidget tương tác cho popupGraph

Các vấn đề liên quan