2013-08-11 6 views
7

Ich habe eine Zeitreihe und die zugehörigen oberen und unteren Konfidenzintervallgrenzen (die ich in Stata berechnet habe) grafisch dargestellt (mit Matplotlib). Ich habe Pandas verwendet, um die stata.csv-Ausgabedatei zu lesen, und daher sind die Serien vom Typ pandas.core.series.Series.Verwenden von fill_between() mit einer Pandas Data Series

Matplotlib erlaubt mir, diese drei Reihen auf der gleichen Handlung grafisch darzustellen, aber ich möchte zwischen den oberen und unteren Vertrauensgrenzen schattieren, um ein visuelles Konfidenzintervall zu erzeugen. Leider bekomme ich einen Fehler, und die Schattierung funktioniert nicht. Ich denke, das hat damit zu tun, dass die Funktionen, zwischen denen ich füllen möchte, pandas.core.series.Series sind.

Ein anderer Beitrag hier schlägt vor, dass das Übergeben von my_series.value anstelle von my_series dieses Problem beheben wird; aber ich kann das nicht zur Arbeit bringen. Ich würde wirklich ein Beispiel schätzen.

+0

Können Sie ein Beispiel anhängen, was Sie haben soweit erreicht, und was genau wollen Sie erreichen? –

+1

Ich habe das Stata-Tag gelöscht. Es ist nebensächlich zu Ihrer Frage, dass Sie die Ergebnisse der Berechnungen in Stata darstellen. Das Tag würde Stata-Leute einfach dorthin führen, wenn es keine Stata-Frage zu beantworten gibt. Umgekehrt, wenn Sie denken, dass es definitiv falsch ist. –

Antwort

7

Solange Sie nicht NaN Werte in Ihren Daten haben, sollten Sie in Ordnung sein:

In [78]: x = Series(linspace(0, 2 * pi, 10000)) 

In [79]: y = sin(x) 

In [80]: fill_between(x.values, y.min(), y.values, alpha=0.5) 

Welche ergibt:

enter image description here

+0

Ich würde in diesem Zusammenhang von der Verwendung des Variablennamens 'x' abraten, da dies sehr verwirrend sein kann, da die horizontale Achse in der Standard-Cathesian-Orientierung als X-Achse (Abscisse oder _first_ axis) bezeichnet wird. während Sie Ihre 'x'-Werte entlang der vertikalen Achse (Ordinate oder _second_ axis) zeichnen. Es wäre intuitiver, den Variablennamen "y" hier zu verwenden, insbesondere, da Matplotlib der Konvention der Standard-Carthesian-Orientation folgt. – hooy

+0

Meine Schreibweise wird in der Signalverarbeitung und in Texten zu Zeitreihen ziemlich einheitlich verwendet. Ich könnte Ihre Beschwerde verstehen, wenn es eine Tonne von Variablen herumschweben würde, aber mein Beispiel ist so einfach, dass es nicht wirklich wichtig ist. Der [Wikipedia-Artikel über Zeitreihen] (http://en.wikipedia.org/wiki/Time_series) verwendet ebenfalls diese Notation. –

+0

Whoa, ich war nicht _complaining_ oder sagte, dass es falsch ist. Ich weiß, dass _x (t) _ ziemlich häufig ist, aber auch _y (t) _. Ich habe gerade darauf hingewiesen, dass 'x' als ein variabler Name, der gegen die y-Achse gezeichnet wird, im Allgemeinen verwirrend sein kann, besonders da das OP für Python und matplotlib neu ist (mit seinem Benutzernamen). – hooy

Verwandte Themen