Zeitreihenplot gestartet ~ Python Edition ~

Einführung

Dieser Artikel ist der 22. Tagesartikel von MicroAd Adventskalender 2019.

Was du machen willst

Zeitreihendiagramme sind ein sehr nützliches Werkzeug bei der Visualisierung von Protokolldaten. Bis jetzt habe ich ein solches Leben geführt, in dem ich durch Zeichnen entkommen bin, indem ich das Datum auf der horizontalen Achse durch eine entsprechende Zahl ersetzt habe. Jetzt ist es jedoch anders. Jetzt können Sie gut mit der horizontalen Achse in chronologischer Reihenfolge zeichnen! Daher möchte ich die Geschichte als Memorandum zusammenfassen. Das hier erstellte Diagramm verwendet nur die Option ** Minimum **.

Methode

Sie können gut mit matplotlib.dates zeichnen. Hier ist ein Codebeispiel.

Täglich

import io
import pandas as pd
import matplotlib.dates as mdates
import matplotlib.pyplot as plt
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()


def main():
    data = """date,value
    2018-12-01,15
    2018-12-02,30
    2018-12-03,25
    2018-12-04,18
    2018-12-05,9
    2018-12-06,22
    2018-12-07,34
    2018-12-08,33
    2018-12-09,28
    2018-12-10,22
    2018-12-11,26
    2018-12-12,31"""
    df = pd.read_csv(io.StringIO(data), parse_dates=[0])

    fig = plt.figure()
    ax = fig.add_subplot(1, 1, 1)
    ax.plot(df['date'], df['value'])

    ##Passen Sie Folgendes an
    daysFmt = mdates.DateFormatter('%Y-%m-%d')
    ax.xaxis.set_major_formatter(daysFmt)
    fig.autofmt_xdate()

    plt.show()


if __name__ == '__main__':
    main()

Die durch diesen Code erstellte Abbildung lautet wie folgt. qiita.png

Wenn Sie die Anzeigemethode ein wenig ändern möchten,

    daysFmt = mdates.DateFormatter('%Y-%m-%d')

Hier können Sie damit herumspielen.

    daysFmt = mdates.DateFormatter('%m/%d')

Wenn Sie es wie oben ändern, sieht die Beschriftung der x-Achse folgendermaßen aus: qiita2.png

Nach Datum und Uhrzeit

Ich werde die Daten ein wenig ändern und es für jedes Datum und jede Uhrzeit versuchen.


import io
import pandas as pd
import matplotlib.dates as mdates
import matplotlib.pyplot as plt
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()


def main():
    data = """date,value
        2018-12-01 00,15
        2018-12-01 01,30
        2018-12-01 02,25
        2018-12-01 03,18
        2018-12-01 04,9
        2018-12-01 05,22
        2018-12-01 06,34
        2018-12-01 07,33
        2018-12-01 08,28
        2018-12-01 09,22
        2018-12-01 10,26
        2018-12-01 11,31"""
    df = pd.read_csv(io.StringIO(data), parse_dates=[0])

    fig = plt.figure()
    ax = fig.add_subplot(1, 1, 1)
    ax.plot(df['date'], df['value'])

    ##Passen Sie Folgendes an
    daysFmt = mdates.DateFormatter('%m/%d %H:%M')
    ax.xaxis.set_major_formatter(daysFmt)
    fig.autofmt_xdate()

    plt.show()


if __name__ == '__main__':
    main()

Die erhaltene Zahl ist wie folgt. qiita3.png

Ändern Sie die Frequenz der Skala

Wenn Sie die Frequenz der Skala ändern möchten, fügen Sie die folgenden zwei Zeilen hinzu.

    daysLoc = mdates.HourLocator(byhour=None, interval=3, tz=None)
    ax.xaxis.set_major_locator(daysLoc)

Dadurch wird die Frequenz der Skala geändert. qiita4.png Es ist eine sehr einsame Figur geworden. Dieses Mal habe ich es mit "Intervall" eingestellt, aber Sie können genau das gleiche Ergebnis erzielen, indem Sie die Option "Intervall" entfernen und es mit "Byhour = Range (2, 12, 3)" einstellen. Zusätzlich zu dem hier verwendeten HourLocater gibt es viele wie MonthLocator, WeekdayLocator, DayLocator, MonthLocator, MinuteLocator, SecondLocator.

Drehung der Achsenbeschriftung

Das Achsenetikett ist zu lang und ragt heraus! In diesem Fall können Sie es drehen. Sie können dies tun, indem Sie die folgenden zwei Zeilen hinzufügen.

    labels = ax.get_xticklabels()
    plt.setp(labels, rotation=45)

Dies ist die erhaltene Zahl. qiita5.png Sie können sehen, dass sich der Winkel des Etiketts geändert hat.

Schließlich

Hier ist eine Zusammenfassung der ** minimalen ** Optionen, die ich im Laufe der Zeit zeichnen musste. Erstellen Sie je nach Situation ein verständlicheres Diagramm! Jetzt, wo wir die Visualisierung haben, ist es Zeitreihenanalyse ...

Referenzmaterial

matplotlib.dates (offizielles Dokument) Achseneinstellung beim Zeichnen von Zeitreihendaten mit matplotlib + Bonus Python matplotlib-Zeitreihendiagramm (Zeitachseneinstellung) [Stellen Sie die Achsenskala des Diagramms der Zeitreihendaten mit matplotlib.dates ein] (https://bunseki-train.com/setting_ticks_by_matplotlib_dates/)

Recommended Posts

Zeitreihenplot gestartet ~ Python Edition ~
[Python] Zeichnen Sie Zeitreihendaten
Python: Zeitreihenanalyse
Python-Zeitreihenfrage
Zeitreihendiagramm / Matplotlib
Python 2-Serie und 3-Serie (Anaconda Edition)
Python: Zeitreihenanalyse: Vorverarbeitung von Zeitreihendaten
Python gestartet
[Python] Beschleunigt das Laden von Zeitreihen-CSV
Beginnen wir mit TopCoder in Python (Version 2020)
[Python] Geigenplot
Zeitreihenzerlegung
Ich habe Python gestartet
Python-Zeitmessung
Erster Python
Zeichnen Sie die CSV von Zeitreihendaten mit einem Unixtime-Wert in Python (matplotlib).
Python: Zeitreihenanalyse: Erstellen eines SARIMA-Modells
Holen Sie sich mit Python Zeitreihendaten von k-db.com
Django 1.11 wurde mit Python3.6 gestartet
Ein * Algorithmus (Python Edition)
Erste Python 3rd Edition
1.1 Erste Schritte mit Python
Python 3.4 Windows7-64bit-Umgebung erstellen (für die Analyse finanzieller Zeitreihen)
Geben Sie die Zeit ab dem Start des Programms in Python aus
Erste Schritte mit Python
RNN_LSTM1 Zeitreihenanalyse
Zeitreihenanalyse 1 Grundlagen
Ausführungszeit für Python ausgeben
Timefloor-Funktion (Python)
[Zeitreihen mit Handlung] Dynamische Visualisierung mit Handlung [Python, Aktienkurs]
Erste Schritte mit Python
Python Aktuelle Zeit abrufen
TOPIX-Zeitreihen anzeigen
Ich habe ein Paket erstellt, um Zeitreihen mit Python zu filtern
Formatieren Sie die Zeitachse des Pandas-Zeitreihendiagramms mit matplotlib neu
Zeichnen Sie Zeitreihendaten in Python mit Pandas und Matplotlib
Einführung in Python-Funktionen
Python-Anwendung: Pandas Teil 2: Serie
Memo zur Messung der Python-Ausführungszeit
PyTorch C ++ VS Python (Ausgabe 2019)
Erste Schritte mit Python Django (1)
CI-Umgebungskonstruktion ~ Python Edition ~
Erste Schritte mit Python Django (4)
Python-Installation (Mac Edition) (alt)
Erste Schritte mit Python Django (3)
Installation der Python 3-Serie für Mac
Messung der Ausführungszeit mit Python With
Zeitreihenanalyse Teil 4 VAR
Zeitreihenanalyse Teil 3 Prognose
Python wurde von C-Programmierern gestartet
Einführung in Python Django (6)
Beginnen Sie mit Python! ~ ② Grammatik ~
Zeitreihenanalyse Teil 1 Autokorrelation
Zeichnen Sie geografische Informationen in Python
IfcOpenShell-Python-Bindungen werden gestartet
Zeitsynchronisation (Windows) mit Python