[PYTHON] Ich habe mit DASH eine Visualisierungssite für das BIP (gesamte Inlandsproduktion) erstellt!

Was war dieser Artikel?

Ich fange an, Datenanalyse zu lernen und so weiter. Und da ich Dash gelernt habe, eines der Python-Frameworks, habe ich beschlossen, eine Site zu erstellen, die einige Daten mit Dash visualisiert. Ich werde den Prozess in diesem Artikel zusammenfassen!

Visualisierung von BIP-Daten

** Ich habe beschlossen, die BIP-Daten zu visualisieren. ** Ich möchte die BIP-Daten nicht separat visualisieren, aber ich habe mir überlegt, welche Art von Daten ich visualisieren soll, aber mir fiel nichts ein, also ** Japan ** / ** Amerika ** / ** China Zusätzlich zu ** habe ich beschlossen, die BIP-Daten von ** Niederlande ** zu visualisieren, in denen ich jetzt lebe.

Datensammlung

** BIP-Daten wurden von dieser Website gesammelt. GLOBAL NOTE ** (https://www.globalnote.jp/post-1409.html) Eigentlich wollte ich die kratzenden Daten mit Beutiful Soup visualisieren, indem ich sie in CSV-Daten ablegte, aber ich konnte die zusammenhängenden Daten, die ich mit offenen Daten visualisieren wollte, nicht wirklich finden.

Von dieser Site aus habe ich ** die Daten einzeln in Excel geschrieben und die CSV-Daten erstellt. ** ** **

Überprüfen Sie die Daten mit Jupyter Notebook

python


import pandas as pd
gdp_data = pd.read_csv('GDP_data.csv', sep=';')
gdp_data.head()

Screenshot 2019-12-09 at 19.46.37.png

Dateninformationen

・ Die Einheit ist eine Million US-Dollar.

python


gdp_data['Japan']

Auf diese Weise können die in der Spalte Japan gespeicherten Daten abgerufen werden.

Vorbereitung auf DASH

Dash vorzubereiten ist sehr einfach. Befolgen Sie die Anweisungen auf der folgenden Website. Das heißt, ich mache nur eine Pip-Installation ... https://dash.plot.ly/installation

Codierung visualise.py

Von hier aus erstellen wir eine Datei, die die Daten mit Dash visualisiert. Die folgenden Elemente müssen mit den für die Verwendung von Dash erforderlichen Bibliotheken importiert werden.

visualise.py


import dash
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
import plotly.graph_objs as go

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

if __name__ == '__main__':
    app.run_server(debug=True)

external_stylesheets gibt den Speicherort des externen CSS an. Ich habe die generierte Instanz in die App eingefügt. Nach den if-Minuten wird die Funktion zum Einrichten des Servers ausgeführt. Wenn das Debuggen jedoch auf True gesetzt ist, ist dies praktisch, da Sie die angezeigte Site überprüfen können, während Sie Änderungen an dieser Datei vornehmen.

Wir werden hier Daten geben und diese visualisieren.

Übergeben Sie die Daten an DASH.

visualise.py


gdp_data = pd.read_csv('GDP_data.csv', sep=';')

Konvertieren Sie Daten von CSV in Datenrahmen, indem Sie diese nach dem Import einfügen.

app.layout = html.Div([
    dcc.Graph(
       id='gdp_graph',
       figure = {
           'data': [
               go.Scatter(
                   x=gdp_data['Time'],
                   y=gdp_data['Japan'],
                   mode='lines',
                   opacity=0.7,
                   marker={
                       'size':15,
                       'color':'red'
                   },
                   name='Japan'
               ),
               go.Scatter(
                   x=gdp_data['Time'],
                   y=gdp_data['USA'],
                   mode='lines',
                   opacity=0.7,
                   marker={
                       'size':15,
                       'color':'blue'
                   },
                   name='USA'
               ),
               go.Scatter(
                   x=gdp_data['Time'],
                   y=gdp_data['China'],
                   mode='lines',
                   opacity=0.7,
                   marker={
                       'size':15,
                       'color':'yellow'
                   },
                   name='China'
               ),
               go.Scatter(
                   x=gdp_data['Time'],
                   y=gdp_data['Netherlands'],
                   mode='lines',
                   opacity=0.7,
                   marker={
                       'size':15,
                       'color':'black'
                   },
                   name='Netherlands'
               )
           ]
       }
    )
])

Fügen Sie diese nach der App-Variablen ein. Es wird klar angegeben, dass das Diagramm mithilfe von go.Scatter als Layout in der App verwendet wird. Sie können die Daten visualisieren, indem Sie die Daten der x- und y-Achse in go.Scater einfügen. Lass uns einen Blick darauf werfen.

$ python3 visualise.py

Screenshot 2019-12-09 at 21.19.26.png Zu diesem Zeitpunkt wurde ein solches Diagramm fertiggestellt. Es sieht sehr gut aus und ist einfach! ?? Es ist sehr gut, dass einige Grafiken bereits mit nützlichen Funktionen implementiert wurden. (Wenn Sie Japan drücken, verschwindet nur das Japan-Diagramm.)

Passen Sie das Layout ein wenig an

'layout': go.Layout(
               xaxis = {'title': 'Time'},
               yaxis = {'title': 'GDP'},
               width = 1000,
               height = 500
           )

Sie können das Layout für die angezeigten Daten auch anzeigen, indem Sie "Layout" nach "Daten" hinzufügen. Screenshot 2019-12-09 at 21.23.48.png Ich konnte die Y- und X-Achse benennen! des Weiteren...

html.H1(
        children='GDP Graph',
        style = {
            'textAlign': 'center',
            'color': 'black',
        }),

    html.Div(
        children='''
        You can easily visualise data by using DASH framework. 
        Here, you can understand the flow of GDP change in graph.
        ''',
        style = {
            'textAlign': 'center',
            'color': 'black',
        }),

Sie können der App auch HTML-Elemente hinzufügen. Screenshot 2019-12-09 at 21.33.43.png Sie können leicht Erklärungen usw. hinzufügen. Kurushunai

Schließlich

Diesmal habe ich eine kleine Datenvisualisierungsseite erstellt. Der Einstieg ist immer noch einfach, aber die Stärke von Python besteht darin, dass Sie selbst mit dieser Art von Wissen Daten relativ gut visualisieren können.

Ich dachte auch, ich würde es auf Heroku veröffentlichen, aber es hat nicht funktioniert, also habe ich diesen Artikel geschrieben.
import dash
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
import plotly.graph_objs as go

gdp_data = pd.read_csv('GDP_data.csv', sep=';')
gdp_data = gdp_data.rename(columns = {'Unnamed: 0': 'Time'})
gdp_data = gdp_data.drop('Unnamed: 5', axis=1)
gdp_data = gdp_data.drop('Unnamed: 6', axis=1)

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
server = app.server
app.layout = html.Div(children=[
    html.H1(
        children='GDP Graph',
        style = {
            'textAlign': 'center',
            'color': 'black',
        }),

    html.Div(
        children='''
        You can easily visualise data by using DASH framework. 
        Here, you can understand the flow of GDP change in graph.
        ''',
        style = {
            'textAlign': 'center',
            'color': 'black',
        }),
    dcc.Graph(
       id='gdp_graph',
       figure = {
           'data': [
               go.Scatter(
                   x=gdp_data['Time'],
                   y=gdp_data['Japan'],
                   mode='lines',
                   opacity=0.7,
                   marker={
                       'size':15,
                       'color':'red'
                   },
                   name='Japan'
               ),
               go.Scatter(
                   x=gdp_data['Time'],
                   y=gdp_data['USA'],
                   mode='lines',
                   opacity=0.7,
                   marker={
                       'size':15,
                       'color':'blue'
                   },
                   name='USA'
               ),
               go.Scatter(
                   x=gdp_data['Time'],
                   y=gdp_data['China'],
                   mode='lines',
                   opacity=0.7,
                   marker={
                       'size':15,
                       'color':'yellow'
                   },
                   name='China'
               ),
               go.Scatter(
                   x=gdp_data['Time'],
                   y=gdp_data['Netherlands'],
                   mode='lines',
                   opacity=0.7,
                   marker={
                       'size':15,
                       'color':'black'
                   },
                   name='Netherlands'
               )
           ],
           'layout': go.Layout(
               xaxis = {'title': 'Time'},
               yaxis = {'title': 'GDP'},
               width = 1000,
               height = 500
           )
       }
    )
])

if __name__ == '__main__':
    app.run_server(debug=True)

Recommended Posts

Ich habe mit DASH eine Visualisierungssite für das BIP (gesamte Inlandsproduktion) erstellt!
Ich habe versucht, Tensorboard zu verwenden, ein Visualisierungstool für maschinelles Lernen
Ich habe ein Dash-Docset für Holoviews erstellt
Ich habe versucht, eine Docker-Datei für die Entwicklungsumgebung von Django zu erstellen
Wir haben ein Peeping-Prevention-Produkt für die Telearbeit entwickelt.
Ich habe mit Github-Aktionen ein Rad für Windows erstellt
[Python] Ich habe ein Follow-Korrelationsdiagramm für Twitter erstellt (Gremlin-Ausgabe)