График с датами в виде оси X в R - PullRequest
4 голосов
/ 30 ноября 2010

Я веду свой журнал в электронном виде и пытаюсь понять, насколько я был последовательным с написанием своего журнала за последние несколько месяцев.У меня есть следующий файл данных, который показывает, сколько записей журнала (Entry Count) и слов (Word Count) я записал за предыдущий 30-дневный период.

Date    Entry Count Word Count
2010-08-25  22  4205
2010-08-26  21  4012
2010-08-27  20  3865
2010-08-28  20  4062
2010-08-29  19  3938
2010-08-30  18  3759
2010-08-31  17  3564
2010-09-01  17  3564
2010-09-02  16  3444
2010-09-03  17  3647
2010-09-04  17  3617
2010-09-05  16  3390
2010-09-06  15  3251
2010-09-07  15  3186
2010-09-08  15  3186
2010-09-09  16  3414
2010-09-10  15  3228
2010-09-11  14  3006
2010-09-12  13  2769
2010-09-13  13  2781
2010-09-14  12  2637
2010-09-15  13  2774
2010-09-16  13  2808
2010-09-17  12  2732
2010-09-18  12  2664
2010-09-19  13  2931
2010-09-20  13  2751
2010-09-21  13  2710
2010-09-22  14  2950
2010-09-23  14  2834
2010-09-24  14  2834
2010-09-25  14  2834
2010-09-26  14  2834
2010-09-27  14  2834
2010-09-28  14  2543
2010-09-29  14  2543
2010-09-30  15  2884
2010-10-01  16  3105
2010-10-02  16  3105
2010-10-03  16  3105
2010-10-04  15  2902
2010-10-05  14  2805
2010-10-06  14  2805
2010-10-07  14  2805
2010-10-08  14  2812
2010-10-09  15  2895
2010-10-10  14  2667
2010-10-11  15  2876
2010-10-12  16  2938
2010-10-13  17  3112
2010-10-14  16  2894
2010-10-15  16  2894
2010-10-16  16  2923
2010-10-17  15  2722
2010-10-18  15  2722
2010-10-19  14  2544
2010-10-20  13  2277
2010-10-21  13  2329
2010-10-22  12  2132
2010-10-23  11  1892
2010-10-24  10  1764
2010-10-25  10  1764
2010-10-26  10  1764
2010-10-27  10  1764
2010-10-28  10  1764
2010-10-29  9   1670
2010-10-30  10  1969
2010-10-31  10  1709
2010-11-01  10  1624
2010-11-02  11  1677
2010-11-03  11  1677
2010-11-04  11  1677
2010-11-05  11  1677
2010-11-06  12  1786
2010-11-07  12  1786
2010-11-08  11  1529
2010-11-09  10  1446
2010-11-10  11  1682
2010-11-11  11  1540
2010-11-12  11  1673
2010-11-13  11  1765
2010-11-14  12  1924
2010-11-15  13  2276
2010-11-16  12  2110
2010-11-17  13  2524
2010-11-18  14  2615
2010-11-19  14  2615
2010-11-20  15  2706
2010-11-21  14  2549
2010-11-22  15  2647
2010-11-23  16  2874
2010-11-24  16  2874
2010-11-25  16  2874
2010-11-26  17  3249
2010-11-27  18  3421
2010-11-28  18  3421
2010-11-29  19  3647

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

d <- read.table("journal.txt", header=T, sep="\t")

Затем я могу отобразить данные с помощью следующей команды.

plot(seq(from=1, to=length(d$Entry.Count), by=1), d$Entry.Count, type="o", ylim=c(0, max(d$Entry.Count)))

Однако на этом графике ось X является простономер, а не дата.Я попытался настроить команду так, чтобы показывать даты на оси X следующим образом.

plot(d$Date, d$Entry.Count, type="o", ylim=c(0, max(d$Entry.Count)))

Однако график не только выглядит странно, но и метки на оси X не очень полезны.Как лучше всего построить эти данные, чтобы я мог четко связать даты с точками на кривой?

Ответы [ 2 ]

5 голосов
/ 30 ноября 2010

Исходя из вашего кода, даты просто символы.

Попробуйте преобразовать их в Даты:

plot(as.Date(d$Date), d$Entry.Count)

Довольно просто в вашем случае, поскольку формат "% Y-% m-% d" используется по умолчанию для as.Date Смотрите strptime для более общих параметров.

2 голосов
/ 30 ноября 2010

Вы можете использовать zoo.?plot.zoo содержит несколько примеров создания пользовательских меток осей.

z <- zoo(d[,-1],as.Date(d[,1]))
plot(z)

# Example of custom axis labels
plot(z$Entry.Count, screen = 1, col = 1:2, xaxt = "n")
ix <- seq(1, length(time(z)), 3)
axis(1, at = time(z)[ix], labels = format(time(z)[ix],"%b-%d"), cex.axis = 0.7)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...