2016-07-25 7 views
-1

Ich beginne nur mit Stata, aber ging durch eine Menge verfügbarer Seiten bereits, um eine Antwort darauf zu finden.Ungültiges Format für Datumsbezeichnungen in Grafik

Verwenden eines einfachen Datensatzes mit zwei Variablen aa und bb.

aa formatiert als %td bb als %8.0g

Der Graph-Befehl Ich habe mit formatiert ist wie folgt:

graph twoway tsline bb, 
title("Numbers by Day", size(medsmall)) 
ytitle("Value", size(small)) 
xtitle("Date", size(small)) 
ysize(2) 
xsize(4) 
tlabel(#15, labsize(vsmall), format(%tcD_m_CY)) 
ylabel(#10, labsize(vsmall)) 

ich, um Datum- als etwas versuche, sonst eher als 21jan2016

aber was auch immer ich in der format Funktion gesetzt bekomme ich einen Fehler "Invalid Date"

%tcD_m_CY ist nur ein Beispiel von Stata Forum: Ich doppelte Anführungszeichen und andere Dinge ausprobiert und alles versagt ..

(ich habe tsset ersten verwenden Datum Achse definieren.)

Antwort

0

Ihre Frage ein minimal fehlt, vollständiges, überprüfbares Beispiel, insofern (1) es keine Daten gibt, die wir einlesen können und (2) mehrere Details in Ihrem Beispiel für Ihr Problem irrelevant sind. Siehe https://stackoverflow.com/help/mcve

Ihr Beispiel ein Argument an die format() Suboption von tlabel() (nicht Funktion), die %tc beginnt gespeist zeigt: dies Stata besteht darauf, dass Werte, die als Tagesdaten eingegeben worden sind (und als # Tagen mit einem Ursprung gezählt 0 = 1. Januar 1960) sind als Datum-Uhrzeit zu interpretieren (und gezählt als # Millisekunden mit Ursprung 0 = 01jan1960 00:00:00).

Also, durch Ihre Anweisung, ein tägliches Datum wie 25. Juli 2016 (die als 20660 bei dieser Herkunft gehalten wird) soll angezeigt werden, als wäre es ein Datum-Uhrzeit. Solch ein Datum-Zeit ist nur ungefähr 2 Sekunden nach dem Start vom 1. Januar 1960; und der Rest deines Anzeigeformats lautet "Zeige mir einfach Tag, Monat und Jahr" und der Tag, Monat und Jahr sind, wie gesagt, am 1. Januar 1960 nach dieser Anweisung.

Ich sehe nichts, was in Ihrem Datumsformat so weit wie Stata betroffen ist; das Problem ist menschlich, dass es gar nicht das ist, was du willst. Natürlich kann ich nicht genau erklären, was mit dem anderen Code falsch war, den Sie ausprobiert haben und der uns nicht zeigt.

Die gefälschten Daten und Code unten veranschaulichen einige Technik. Bei täglichen Daten ist die Kennzeichnung jeden Tag in der Regel eine schlechte Idee mit mehr als einer Woche Daten, da Sie einfach nicht genug Platz haben; Das gleiche Jahr immer wieder zu zeigen, ist in der Regel unnötig und eine schlechte Raumnutzung. Ein Achsentitel wie "Datum" ist überflüssig, solange Daten eindeutig angegeben sind. Diese Punkte gelten für die von Ihnen verwendete Software.

clear 
set obs 15 
gen aa = daily("30 Jun 2016", "DMY") + _n 
format aa %td 
mat bb = (12, 14, 10, 8, 6, 8, 9, 11, 13, 15, 17, 19, 21, 23, 25) 
gen bb = bb[1, _n] 
tsset aa 

graph twoway tsline bb, /// 
title("Numbers by Day") ytitle("Value") xtitle("") /// 
tlabel(#7, format(%tdd_M)) 

enter image description here

Es ist Ihr Diagramm, aber das Endergebnis ist einfach: täglich Termine werden eine Art von %td Format benötigen, und %tc Format ist völlig falsch, auf einer Stufe mit verwirrenden Cent und Millionen von Dollar als Einheiten.

Sie sagen nicht genau, was Sie lesen, aber das ist gut dokumentiert: help datetime in Stata und was auch immer es zeigt, sind alles was Sie brauchen, um zu studieren.

Beachten Sie auch http://www.statalist.org/forums/help#spelling

+0

Danke, werde ich die Qualität der nächsten Fragen verbessern und einige Beispieldaten zur Verfügung stellen usw. Während Ihr am Beispiel wurde mir klar, was das Problem war, sollte es kein Komma zwischen labsize und Format Suboptionen sein - Diese sind räumlich getrennt. – Moseleyi

Verwandte Themen