2010-11-30 4 views
4

Ich pflege mein Journal elektronisch und ich versuche, eine Vorstellung davon zu bekommen, wie konsequent ich mit meinem Tagebuch in den letzten Monaten geschrieben habe. Ich habe die folgende Datendatei, die zeigt, wie viele Journaleinträge (Entry Count) und Wörter (Word Count) ich über den vorangegangenen 30-Tage-Zeitraum aufgezeichnet habe.Plot mit Daten als X-Achse in R

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 

Ich versuche, diese Daten mit R zu plotten, um eine grafische Darstellung meiner Journal-Schreibkonsistenz zu erhalten. Ich lade es in R mit dem folgenden Befehl.

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

Ich kann dann die Daten mit dem folgenden Befehl grafisch darstellen.

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

In diesem Diagramm ist die X-Achse jedoch nur eine Zahl, kein Datum. Ich habe versucht, den Befehl so anzupassen, dass Daten auf der X-Achse angezeigt werden.

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

jedoch nicht nur die Handlung seltsam aussehen, aber die Etiketten auf der X-Achse sind nicht sehr hilfreich. Was ist der beste Weg, diese Daten so zu plotten, dass ich Daten eindeutig mit Punkten auf der geplotteten Kurve assoziieren kann?

Antwort

2

Sie könnten zoo verwenden. ?plot.zoo enthält mehrere Beispiele zum Erstellen benutzerdefinierter Achsenbeschriftungen.

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) 
+0

Woher kommt das Objekt 'tt'? –

+0

@Daniel Whoops, ich habe nicht sorgfältig genug kopiert/eingefügt: 'tt <- time (z)' –

+0

Ein bisschen mehr beteiligt als die andere Antwort, aber das kann nützlich sein, wenn es darum geht, es genau wie ich zu optimieren wollen. Vielen Dank! –

5

Basierend auf Ihrem Code sind die Daten nur Zeichen.

versuchen, sie zu Daten konvertieren:

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

Ganz einfach in Ihrem Fall als "% Y-% m-% d" Format ist die Standardeinstellung für as.Date. Weitere Informationen zu allgemeinen Optionen finden Sie unter strptime.

+0

Sehr einfach und hilfreich. Vielen Dank! –