Лучшая техника для графиков - PullRequest
7 голосов
/ 21 октября 2011

Теперь, когда правление Каддафи прошло более 40 лет, я хочу построить график временной шкалы его периода власти с периодами в других странах этой эпохи.например, президенты США, канцлеры Германии и т. д. Таким образом, ось x будет временем, странами оси y и разбивкой временной шкалы - по правильному временному интервалу - показывая Никсона, Форда и т. д. для США

.R, я бы предпочел решение на этом языке, но чувствую, что это не лучшее решение.Любые предложения для этого или альтернативных, бесплатных решений?

Я, вероятно, должен добавить, что если в R датафрейм начнется

Country  Boss   TookCharge

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

Ответы [ 2 ]

5 голосов
/ 21 октября 2011

Это простая задача для ggplot:

Создать некоторые данные:

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"))
)

Составить сюжет:

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

4 голосов
/ 21 октября 2011

Вы можете создать набор редких, нерегулярных зоопарков или xts временных рядов с одним для каждой группы связанных событий для аннотирования (президенты США в одном, канцлеры в другом). Столбец индекса будет датой, а значение будет символьной аннотацией. Тогда у вас есть выбор диаграммных библиотек. С помощью Lattice вы сможете разделить его на одну панель на группу.

В качестве альтернативы вы можете просто построить одну регулярную серию времен, в течение которых он был у власти, с некоторыми фиктивными значениями для каждой точки данных. Нарисуйте это с помощью прозрачной линии, чтобы настроить базовый график, к которому вы бы добавили свои аннотации. Вы можете использовать аблайн или подобное.

Это может быть еще более быстрый способ http://www.inside -r.org / packages / cran / googleVis / docs / gvisAnnotatedTimeLine http://code.google.com/apis/chart/interactive/docs/gallery/annotatedtimeline.html#Example

...