2013-11-11 3 views
1

У меня есть еженедельные данные для каждого округа в состоянии. Я хотел бы создать анимацию, которая каждую неделю проецирует данные, нанесенные на карту, с цветами, указывающими интенсивность и/или изменения с предыдущей недели.Создание анимации с ggplot с данными карты в R

library(ggplot2); library(animation); library(maps); library(plyr) 

county <- map_data("county") 

wy <- county[county$region =="wyoming",] 

l = length((wy$subregion)) 
#Add random variales 
wy <- mutate(wy, a = runif(length(region)), 
      b = runif(length(region)), 
      c= runif(length(region))) 

test <- function(j){    
ggplot(wy, aes(long, lat, group = group))+ 
    geom_path() + 
    geom_polygon(aes_string(fill=j)) 
} 

test("c") 
test("b") 


v = c("a","b","c")) 

oopt <- animation::ani.options(interval = 0.1) 

FUN2 <- function() { 
    lapply(v, function(i) { 
    test(i) 
    animation::ani.pause() 
    }) 
} 
FUN2() 

saveHTML(FUN2(), autoplay = FALSE, loop = FALSE, verbose = FALSE, outdir = "images/animate/new", 
single.opts = "'controls': ['first', 'previous', 'play', 'next', 'last', 'loop', 'speed'], 'delayMin': 0") 

Что случилось с последним вызовом функции?

+0

Посмотрите на: http://trinkerrstuff.wordpress.com/2013/05/11/animations-understood-5/, чтобы узнать больше о том, как настроить анимацию. У вас есть статический график, теперь создайте функцию для подачи данных на статический график. –

+0

Спасибо Tyler .. посмотрел, но не совсем это – vinchinzu

+1

Эй, спасибо за то, что он подарил вам вихрь. Пожалуйста, ответьте на свой вопрос ниже, добавив следующее: 'print (test (i))' вместо 'test (i)' внутри 'FUN2' –

ответ

4
library(ggplot2); library(animation); library(maps); library(plyr) 

county <- map_data("county") 

wy <- county[county$region =="wyoming",] 

l = length((wy$subregion)) 
#Add random variales 
wy <- mutate(wy, a = runif(length(region)), 
      b = runif(length(region)), 
      c= runif(length(region))) 

test <- function(j){    
    ggplot(wy, aes(long, lat, group = group))+ 
    geom_path() + 
    geom_polygon(aes_string(fill=j)) 
} 

test("c") 
test("b") 

wy$1 <- wy$a 

oopt <- animation::ani.options(interval = 0.1) 

FUN2 <- function() { 
    v = c("a","b","c") 
    lapply(v, function(i) { 
    print(test(i)) 
    ani.pause() 
    }) 
} 
FUN2() 

saveHTML(FUN2(), autoplay = FALSE, loop = FALSE, verbose = FALSE, outdir = "images/animate/new", 
     single.opts = "'controls': ['first', 'previous', 'play', 'next', 'last', 'loop', 'speed'], 'delayMin': 0") 

Отсутствует print(test(i)) во второй функции.

+0

Теперь отметьте галочку, когда вы можете :) Хорошая работа по борьбе и обучению (я уверен) - тонна сама по себе. –

Смежные вопросы