Monday 27 February 2017

Matplotlib Moving Average Beispiel

Ich arbeite an der Erstellung eines Konturplot mit Matplotlib. Ich habe alle Daten in einem Array, das mehrdimensional ist. Es ist 12 lang ungefähr 2000 breit. So ist es im Grunde eine Liste von 12 Listen, die 2000 in der Länge sind. Ich habe das Konturdiagramm arbeiten fein, aber ich muss die Daten glätten. Ich habe eine Menge von Beispielen gelesen. Leider habe ich nicht die Mathe Hintergrund zu verstehen, was los ist mit ihnen. Also, wie kann ich diese Daten glatt Ich habe ein Beispiel, wie meine Grafik aussieht und was ich möchte, dass es mehr aussehen. Dies ist meine Grafik: Was ich möchte, dass es mehr ähnlich aussehen: Was bedeutet, habe ich, um die Konturplot glatt wie im zweiten Plot Die Daten, die ich verwende, wird aus einer XML-Datei gezogen. Aber, werde ich zeigen die Ausgabe eines Teils des Arrays. Da jedes Element im Array etwa 2000 Elemente lang ist, zeige ich nur einen Auszug. Hier ist ein Beispiel: Denken Sie daran, dies ist nur ein Auszug. Die Dimension der Daten beträgt 12 Zeilen zu 1959 Spalten. Die Spalten ändern sich abhängig von den Daten, die aus der XML-Datei importiert werden. Ich kann die Werte anschauen, nachdem ich den Gaußfilter benutzt habe und sie ändern sich. Die Änderungen sind jedoch nicht groß genug, um das Konturdiagramm zu beeinflussen. Eine einfache Möglichkeit, Daten glatt ist mit einem gleitenden Durchschnitt Algorithmus. Eine einfache Form des gleitenden Durchschnitts ist, den Mittelwert der benachbarten Messungen an einer bestimmten Position zu berechnen. In einer eindimensionalen Messreihe a1: N kann beispielsweise der gleitende Durchschnitt bei a als (an-1 und an1) 3 berechnet werden. Wenn Sie alle Messungen durchlaufen, sind Sie fertig. In diesem einfachen Beispiel, unser Durchschnitt Fenster hat Größe 3. Sie können auch Fenster in verschiedenen Größen, je nachdem, wie viel Glättung Sie wollen. Um die Berechnungen für ein breiteres Spektrum von Anwendungen einfacher und schneller zu machen, können Sie auch einen auf Faltung basierenden Algorithmus verwenden. Der Vorteil der Faltung ist, dass Sie verschiedene Arten von Mitteln, wie gewichtete Durchschnitte, durch einfaches Ändern des Fensters wählen können. Lets einige Codierung zu illustrieren. Der folgende Auszug benötigt Numpy, Matplotlib und Scipy installiert. Klicken Sie hier für den vollständigen Beispielcode Der folgende Code generiert einige willkürliche und verrauschte Daten und berechnet dann den gleitenden Durchschnitt mit vier unterschiedlich großen Boxfenstern. Und dann, um die verschiedenen Ergebnisse zu sehen, hier ist der Code für einige Plotten. Und hier sind die gezeichneten Ergebnisse für unterschiedlich große Fenster: Der hier angezeigte Beispielcode verwendet ein einfaches (oder rechteckiges) Fenster in zwei Dimensionen. Es gibt mehrere verschiedene Arten von Fenstern zur Verfügung und möchten Sie vielleicht auf Wikipedia für weitere Beispiele zu überprüfen. Wir zuvor eingeführt, wie man gleitende Durchschnitte mit Python erstellen. Dieses Tutorial wird eine Fortsetzung dieses Themas sein. Ein gleitender Durchschnitt im Rahmen der Statistik, auch rollingrunning average genannt, ist eine Art von endlicher Impulsantwort. In unserem vorherigen Tutorial haben wir die Werte der Arrays x und y: Let8217s plot x gegen den gleitenden Durchschnitt von y aufgetragen, den wir yMA nennen wollen: Erstens, let8217s gleichen die Länge beider Arrays aus: Und dies im Kontext: Das Ergebnis Diagramm: Um dies zu verstehen, let8217s plotten zwei verschiedene Beziehungen: x vs y und x vs MAy: Der gleitende Durchschnitt hier ist die grüne Handlung, die bei 3 beginnt: Share this: Gefällt mir: Post navigation Lassen Sie eine Antwort Antworten abbrechen Sehr nützlich I Würde gerne den letzten Teil auf großen Datensätzen lesen Hope wird es bald kommen8230 d Blogger wie folgt: Advanced Matplotlib Serie (nur Videos und Endgeräte) Sobald Sie ein grundlegendes Verständnis davon, wie Matplotlib arbeitet, haben Sie möglicherweise ein Interesse daran, Ihre Wissen ein wenig weiter. Einige der komplexesten grafischen Bedürfnisse kommen in Form von Aktien-Analyse und Charting, oder Forex. In diesem Tutorial-Serie, wurden zu decken, wo und wie automatisch greifen, sortieren und organisieren einige freie Aktien-und Forex-Preise Daten. Als nächstes wollten wir es mit einigen der beliebtesten Indikatoren als Beispiel. Hier, gut tun MACD (Moving Average Convergence Divergence) und der RSI (Relative Strength Index). Damit wir diese berechnen können, verwenden wir NumPy, aber sonst berechnen wir diese alle auf unseren eigenen. Um die Daten zu erwerben, würden die Yahoo Finance API verwenden. Diese API gibt die historischen Preisdaten für das von uns angegebene Tickersymbol und die von Ihnen gewünschte Zeitlänge zurück. Je größer der Zeitrahmen ist, desto geringer ist die Auflösung der Daten, die wir erhalten. Wenn Sie also nach einem eintägigen Zeitrahmen für AAPL fragen, erhalten Sie 3-Minuten-OHLC-Daten (open high low close). Wenn Sie für 10 Jahre Wert fragen, erhalten Sie täglich Daten oder sogar 3 Tage Zeitrahmen. Beachten Sie dies und wählen Sie einen Zeitrahmen, der Ihre Ziele passt. Auch wenn Sie einen niedrig genug Zeitrahmen wählen und hoch genug Granularität erhalten, wird die API die Zeit in einem Unix-Zeitstempel zurückgeben, verglichen mit einem Datumsstempel. Sobald wir die Daten haben, wollen wir sie grafisch darstellen. Um zu beginnen, gut gerade die Linien, aber die meisten Leute wollen einen Kerzenstab stattdessen. Wir verwenden Matplotlibs Candlestick-Funktion, und machen Sie eine einfache Bearbeitung, um es leicht zu verbessern. Auf dieser Tabelle, auch überlagern ein paar gleitende Durchschnitt Berechnungen. Danach wollten wir einen Subplot erstellen und die Lautstärke grafisch darstellen. Wir können das Volumen auf demselben Subplot nicht sofort plotten, weil die Skala unterschiedlich ist. Um zu beginnen, werden wir das Volumen unterhalb in einem anderen Sub-Diagramm, aber schließlich tatsächlich tatsächlich überlagern Volumen auf die gleiche Figur und machen es etwas transparent. Dann wurden zwei Sub-Plots hinzuzufügen und eine RSI-Indikator oben und die MACD-Anzeige auf der Unterseite. Für alle von ihnen, würden die X-Achse zu teilen, so können wir vergrößern und verkleinern in 1-Plot, und sie werden alle mit dem gleichen Zeitrahmen. Wurden zu plotten in Datumsformat für die X-Achse, und passen Sie so ziemlich alle Dinge, die wir für die Ästhetik. Dazu gehören wechselnde Tick-Label-Farben, Rand-Wirbelsäulenfarben, Linienfarben, OHLC-Leuchterfarben, lernen, wie man einen gefüllten Graphen (für Volumen), Histogramme, zeichnen Sie bestimmte Linien (hline für RSI) und eine ganze Menge mehr. Heres das Endergebnis (Ich habe sowohl eine Python 3 und eine Python-2-Version für diese Python 3 zuerst, dann Python 2. Stellen Sie sicher, dass Sie mit der, die Ihre Python-Version entspricht): Das ist alles für jetzt. Wollen Sie mehr Tutorials Kopf auf die Startseite


No comments:

Post a Comment