[Zeitreihen mit Handlung] Dynamische Visualisierung mit Handlung [Python, Aktienkurs]

Ich werde die Zeitreihe mundtot machen

c.gif

Umgebung

python==3.8 plotly==4.10.0

Visualisierung von Zeitreihen mit Plotly

Die Vorverarbeitung von Zeitreihendaten ist schwierig, aber eine schöne Visualisierung ist genauso schwierig.

Wenn es in der Zeitreihenvisualisierung einen merkwürdigen Peak gibt, ・ Welcher Monat und Tag war es? ・ Wenn es abnormal ist, können Sie sich auf den Kommentar zu diesem Zeitpunkt beziehen? ・ Ist es möglich, den Maßstab etwas weiter zu erweitern oder zu ändern? Wird passieren

Es ist schwierig, jedes Mal zur Seite der Quelldaten zu wechseln, aber mit der dynamischen Visualisierung von Plotly Es ist leicht zu erkennen, welcher Monat und welcher Tag es ist. Es ist auch möglich, auf einen bestimmten Zeitraum einzugrenzen und nur auf Halbjahresaufträge zu erweitern

Plot der ersten Zeile

Versuchen Sie es mit einem Plot

import plotly.express as px
fig = px.line(x=[1,2,3,4,5], y=[10,11,15,16,8], title="line plot")
fig.show()

image.png

Gewöhnliche lineare Darstellung

Versuchen Sie, Aktienkursdaten zu verwenden, die aus den Datensätzen von plotly aufgerufen werden können

image.png

import plotly.express as px
import pandas as pd
df = px.data.stocks()
fig = px.line(df,x='date', y='NFLX', title="NFLX stocks plot")
fig.show()

Wenn das Datum in einem erkennbaren Format eingegeben wird, wird es durch Angabe auf der X-Achse auf die Uhrzeit eingestellt.

image.png

Bereich zur Angabe des Anzeigezeitraums

import plotly.express as px
import pandas as pd
df = px.data.stocks()
fig = px.line(df,x='date', y='NFLX', title="NFLX stocks plot", range_x=['2018-07-01','2019-12-31'])
fig.show()

image.png

Geben Sie mehrere auf der Y-Achse an

import plotly.express as px
import pandas as pd
df = px.data.stocks()
fig = px.line(df,x='date', y=df.columns[1:6], title="6 company stocks plot")
fig.show()

image.png

Ändern Sie das Skalierungsintervall

import plotly.express as px
import pandas as pd
df = px.data.stocks()
fig = px.line(df,x='date', y=df.columns[1:6], title="6 company stocks plot")
fig.update_xaxes(
    dtick="M1",
    tickformat="%b\n%Y")
fig.show()

image.png

〇 Übergeben Sie die Monatspause, um mit M 〇 zu ticken Das Format der Skalenbeschriftung kann als Zeichentyp übergeben werden, und das Anzeigeformat kann mithilfe von Zeilenvorschub-Symbolen usw. geändert werden.

Zum Beispiel

fig.update_layout(
    title="6 company stocks plot",
    xaxis_tickformat = '%d %B (%a)<br>%Y'
)

Wenn Sie als angeben, können Sie die Anzeige von Tag und Jahr, Monat und Tag bedienen

image.png

Ändern Sie das Verhalten, wenn Sie die Maus gedrückt halten

Normalerweise können Sie auf einen Informationspunkt verweisen, indem Sie die Maus darüber halten. Sie können das Layout auch ändern, um Informationen für alle Daten anzuzeigen

Normalfall

a.gif

import plotly.express as px
import pandas as pd
df = px.data.stocks()
fig = px.line(df,x='date', y=df.columns[1:6], title="6 company stocks plot")
fig.update_xaxes(
    dtick="M1",
    tickformat="%b\n%Y")

fig.update_layout(template=go.layout.Template())

fig.show()

b.gif

Bereichsauswahl, die den Anzeigebereich interaktiv macht

Mit update_layout können Sie eine Funktion hinzufügen, um den Anzeigeabschnitt in der Grafik in der Abbildung anzugeben. Gilt sowohl für go.Figure als auch für plotly.express Praktisch, weil Sie es kopieren und verwenden können

Zu graph_objects hinzufügen

import plotly.graph_objects as go
import pandas as pd

fig = go.Figure()

fig.add_trace(go.Scatter(x=list(df.date), y=list(df.GOOG)))

fig.update_layout(
    title_text="range slider and selectors"
)

fig.update_layout(
    xaxis=dict(
        rangeselector=dict(
            buttons=list([
                dict(count=1,
                     label="1m",
                     step="month",
                     stepmode="backward"),
                dict(count=6,
                     label="6m",
                     step="month",
                     stepmode="backward"),
                dict(count=1,
                     label="YTD",
                     step="year",
                     stepmode="todate"),
                dict(count=1,
                     label="1y",
                     step="year",
                     stepmode="backward"),
                dict(step="all")
            ])
        ),
        rangeslider=dict(
            visible=True
        ),
        type="date"
    )
)

fig.show()

Zu plotly.express hinzufügen

import plotly.express as px
fig = px.line(df,x='date', y=df.columns[1:6])

fig.update_layout(
    title_text="range slider and selectors"
)

fig.update_layout(
    xaxis=dict(
        rangeselector=dict(
            buttons=list([
                dict(count=1,
                     label="1m",
                     step="month",
                     stepmode="backward"),
                dict(count=6,
                     label="6m",
                     step="month",
                     stepmode="backward"),
                dict(count=1,
                     label="YTD",
                     step="year",
                     stepmode="todate"),
                dict(count=1,
                     label="1y",
                     step="year",
                     stepmode="backward"),
                dict(step="all")
            ])
        ),
        rangeslider=dict(
            visible=True
        ),
        type="date"
    )
)

fig.show()

c.gif

Plot mit Streuung

import plotly.express as px
fig = px.scatter(df,x=df['date'], y=df.columns[1:6])
fig.show()

image.png

Plot mit graph_objects


import plotly.graph_objects as go

fig = go.Figure([
    go.Scatter(
        x=df['date'], y=df[df.columns[i]],
        opacity=.5
    )
    for i in range(1,len(df.columns))
])

fig.show()

image.png

graph_objects kann gut zeichnen wie das Hinzufügen von oben zum Campus Fügen Sie go.scatter zu der mit go.Figure erstellten Zeichenfläche hinzu Dieses Mal habe ich go.scatter 5 Mal hinzugefügt, während ich die Spalte mit for geändert habe. Sie können sie einzeln mit add_trace hinzufügen In diesem Fall können einige Linien unterbrochene Linien und einige Linien durchgezogene Linien sein.

Das Folgende ist eine Änderung des Leitungstyps

import plotly.graph_objects as go

fig = go.Figure([
    go.Scatter(
        x=df['date'], y=df[df.columns[i]], 
        opacity=.5, 
        line=dict(dash='dash')
    )
    for i in range(1,len(df.columns))
])

fig.show()

image.png

Stock Kerzentabelle

Sie können ganz einfach ein Kerzendiagramm erstellen, indem Sie den Eröffnungskurs, den hohen Preis, den niedrigen Preis und den Schlusskurs des Aktienkurses angeben.

import plotly.graph_objects as go
import pandas as pd
from datetime import datetime

df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv')

fig = go.Figure(data=[go.Candlestick(x=df['Date'],
                open=df['AAPL.Open'],
                high=df['AAPL.High'],
                low=df['AAPL.Low'],
                close=df['AAPL.Close'])])

fig.update_layout(
    title_text="Candle"
)

fig.update_layout(
    xaxis=dict(
        rangeselector=dict(
            buttons=list([
                dict(count=1,
                     label="1m",
                     step="month",
                     stepmode="backward"),
                dict(count=6,
                     label="6m",
                     step="month",
                     stepmode="backward"),
                dict(count=1,
                     label="YTD",
                     step="year",
                     stepmode="todate"),
                dict(count=1,
                     label="1y",
                     step="year",
                     stepmode="backward"),
                dict(step="all")
            ])
        ),
        rangeslider=dict(
            visible=True
        ),
        type="date"
    )
)

fig.show()

image.png

das ist alles

Es ist großartig, die Werte sehen zu können

Recommended Posts

[Zeitreihen mit Handlung] Dynamische Visualisierung mit Handlung [Python, Aktienkurs]
[Verschiedene Bildanalysen mit Plotly] Dynamische Visualisierung mit Plotly [Python, Bild]
[Mit Plotly auf die Karte schreiben] Dynamische Visualisierung mit Plotly [Python]
Holen Sie sich Lager mit Python
"Abrufen von Zeitreihendaten von k-db.com mit Python" Memo zur Erstellung der Programmumgebung
Laden Sie japanische Aktienkursdaten mit Python herunter
[Sprechen Sie über die Zeichnungsstruktur von plotly] Dynamische Visualisierung mit plotly [Python]
Holen Sie sich Aktienkursdaten mit Quandl API [Python]
Web Scraping mit Python (Aktienkurs)
Python: Zeitreihenanalyse
Python-Zeitreihenfrage
Visualisierung der Logistik mit Python
Erstellen Sie mit Python + Plotly eine animierte Zeitreihenkarte des Infektionsstatus des Corona-Virus
Visualisieren Sie mit Plotly die Zeitreihenvorhersagen des Propheten klarer
Messung der Ausführungszeit mit Python With
Python: Aktienkursprognose Teil 2
[Python] Zeichnen Sie Zeitreihendaten
Zeitsynchronisation (Windows) mit Python
Python: Aktienkursprognose Teil 1
Programmierhistorie 1 Monat NY Dow-Bestand mit Python extrahieren!
Ich habe ein Paket erstellt, um Zeitreihen mit Python zu filtern
Einfache Vorhersage von Zeitreihen mit Prophet
Python: Zeitreihenanalyse: Vorverarbeitung von Zeitreihendaten
Dynamischer Proxy mit Python, Ruby, PHP
[Python] Meine Aktienkursprognose [HFT]
Zeitreihenplot gestartet ~ Python Edition ~
Visualisieren Sie Ihre Daten ganz einfach mit Python Seaborn.
[Kapazitätsanzeige, Gantt-Diagramm, Benutzeroberfläche] Plotly dynamische Visualisierung [Python, Messanzeige, Gantt-Diagramm]
Datenanalyse beginnend mit Python (Datenvisualisierung 1)
Datenanalyse beginnend mit Python (Datenvisualisierung 2)
[Visualisierung des Verhältnisses] Plotly und dynamische Visualisierung [Python, Pie, Sunburst, Sanky, Treemap, Fannele,]
Zeichnen Sie die CSV von Zeitreihendaten mit einem Unixtime-Wert in Python (matplotlib).
[Dichtevisualisierung] Plotly und dynamische Visualisierung [Python3, Hist, KDE, Join, Kontur, Heat Map]
Vorhersage von Zeitreihendaten durch Simplex-Projektion
Vorhersage von Zeitreihendaten mit einem neuronalen Netzwerk
Überprüfen Sie die Aktienkurse mit Slackbot mit Python
[Python] Beschleunigt das Laden von Zeitreihen-CSV
Aktienprognose mit TensorFlow (LSTM) ~ Aktienprognose Teil 1 ~
[Python] Erstellen eines Aktien-Drawdown-Diagramms
Empfehlung von Altair! Datenvisualisierung mit Python
Text Mining mit Python ② Visualisierung mit Word Cloud
Formatieren und Anzeigen von Zeitreihendaten mit verschiedenen Maßstäben und Einheiten mit Python oder Matplotlib
[Zeichnen und Beschriften mehrerer Diagramme] Plotdynamische Visualisierung [python3, make subplot, xlabel, ylabel]
[EDA super basic] Plotly und dynamische Visualisierung [Python3, Tisch, Bar, Box, Violine, Freude]
[Streudiagramm, 3D-Diagramm und Regressionsebene] Diagrammdynamische Visualisierung [Python, Streuung, 3D, Oberfläche, Paar, Gelenk]
Holen Sie sich mit Python den Aktienkurs eines japanischen Unternehmens und erstellen Sie eine Grafik
Bequeme Zeitreihenaggregation mit TimeGrouper von Pandas
Python: Zeitreihenanalyse: Erstellen eines SARIMA-Modells
[Python3] Eine Geschichte, die bei der Zeitzonenkonvertierung steckt
Python: Zeitreihenanalyse: Konstanz, ARMA / ARIMA-Modell
Erfassung von Zeitreihendaten (täglich) von Aktienkursen
Verwenden Sie vorerst Logger mit Python
So messen Sie die Ausführungszeit mit Python Teil 1
Zeigen Sie Details zu Zeitreihendaten mit Remotte an
Automatische Erfassung von Aktienkursdaten mit Docker-Compose
Python & Machine Learning Study Memo ⑦: Aktienkursprognose
So messen Sie die Ausführungszeit mit Python Part 2
✨ Einfach mit Python ☆ Geschätzte verstrichene Zeit nach dem Tod ✨