2011-10-21 7 views
7

Ahora que la regla de más de 40 años de Gaddafi ha terminado, quiero construir un gráfico de la línea de tiempo de su período en el poder con los de otros países durante la época. ej. presidentes de EE. UU., cancilleres alemanes, etc. Así que el eje x sería el tiempo, los países del eje y y la línea de tiempo dividida - por el marco de tiempo correcto - mostrando Nixon, Ford etc. para EE. UU.Mejor técnica para las líneas de tiempo

Como estoy tratando de aprender R , Preferiría una solución en ese idioma, pero tengo la sensación de que no es la mejor solución. ¿Alguna sugerencia para eso o alternativas, soluciones gratuitas?

probablemente debería añadir que si en I la trama de datos comenzaría

Country Boss TookCharge 

USA  Nixon 1969-01-20 
USA  Ford 1974-08-09 
Germany Brandt 1969-10-22 
Germany Schmidt 1974-05-16 
+3

Interesante. Podrías marcar en tu línea de tiempo cuando Occidente dejó de demonizar a Gaddafi por nacionalizar propiedad extranjera (que se consideró suficientemente malvada durante los 70 y 80) y comenzó a demonizarlo por corrupción, represión, asesinatos en masa, etc. – MusiGenesis

+0

Google Docs Spreadsheets tiene un gadget de línea de tiempo que uno puede insertar. Es muy quisquilloso y rompe más que trabajos. A mí también me encantaría ver esto. R.R es robusto y flexible. – Farrel

Respuesta

5

Ésta es una tarea sencilla para ggplot:

Crear algunos datos:

x <- data.frame(
    country = rep(c("USA", "Germany"), each=2), 
    boss = c("Nixon", "Ford", "Brandt", "Schmidt"), 
    start = as.Date(c("1969-01-20", "1974-08-09", "1969-10-22", "1974-05-16")) 
) 

Hacer el terreno:

library(ggplot2) 
ggplot(x, aes(x=start, y=country)) + 
    geom_line() + 
    geom_point() + 
    geom_text(aes(label=boss), hjust=0, vjust=0) + 
    xlim(c(min(x$start), max(x$start)+5*365)) # Add some space to right 

enter image description here

+0

Gracias muchachos. Esto me ha puesto en el camino correcto. ¿Hay alguna manera linda de alternar el vjust para que los nombres consecutivos puedan caer arriba y debajo de la línea? Cuando el líder con nombres largos se suceden rápidamente, por ejemplo, la URSS en los años 80, la trama se vuelve ilegible – pssguy

+0

@pssguy Sí, puede proporcionar un vector como argumento a 'vjust = ...' - algo así como 'vjust = c (0, 1) 'debería funcionar debido a la regla de reciclaje de vectores (no probada). – Andrie

+0

Gracias por su sugerencia, pero aparece el error "Al establecer la estética, solo pueden tomar un valor". Intenté configurar un interruptor variable = c (0,1) y luego vjust = cambiar pero eso tampoco funcionó. ¿Es posible crear una función fuera de ggplot que vjust pueda invocar? Estoy un poco confuso en este enfoque – pssguy

4

Usted puede construir un conjunto de zoológico escasa, irregular o xts series de tiempo con uno para cada grupo de eventos relacionados a anotar (presidentes de Estados Unidos en uno, rectores en otro). La columna de índice sería la fecha y el valor sería la anotación de carácter. A continuación, tienes la opción de graficar gráficas. Con Lattice, podrías dividirlo en un panel por grupo.

Alternativamente, usted podría simplemente construir una única serie temporal regular de los años que estuvo en el poder con algunos valores falsos para cada punto de datos. Traza eso con una línea transparente solo para configurar la trama base a la que luego agregarías tus anotaciones. Puedes usar abline o similar.

Otra forma más rápida podría ser este http://www.inside-r.org/packages/cran/googleVis/docs/gvisAnnotatedTimeLine http://code.google.com/apis/chart/interactive/docs/gallery/annotatedtimeline.html#Example

+1

Tavis. Gracias por su sugerencia. Estoy jugando con la opción googleVis, que puede ser una solución web mejor de lo que R puede ofrecer +1 – pssguy

Cuestiones relacionadas