Visualisierung der Logistik mit Python

Was ist das

Ein Beispiel für einen kurzen Überblick über Trends bei Durchflussdaten.

Originale Daten

Aus Verteilungszählung des Außenministeriums [Durchflussvolumen zwischen Präfekturen (nach Produkttyp) -Gewicht-](http: // www. mlit.go.jp/sogoseisaku/transport/sosei_transport_fr_000074.html) wird verwendet. Jedes Blatt enthält die Gewichtsdaten des physischen Flusses nach Präfektur im Jahr 2010. Insgesamt gibt es 10 Blätter, landwirtschaftliches Wasser, Forstwirtschaft, Bergbau, Metallmaschinen, Chemie, leichte Arbeit, verschiedene Arbeiten, Entladung und Spezial.

Ausführungsumgebung

Wir haben ein Docker-Image (tsutomu7 / graphviz) vorbereitet, damit Sie graphviz schnell verwenden und Folgendes ausführen können.

bash


firefox http://localhost:8888 &
docker run -it --rm -p 8888:8888 tsutomu7/graphviz

Wenn Sie Ihre eigenen erstellen möchten, führen Sie nach der Installation von [Anaconda] "conda install graphviz" und "pip install graphviz" aus (https://www.continuum.io/downloads). Installieren Sie den Hauptteil von graphgviz mit conda und die Hülle mit pip.

Versuchen Sie es mit Python

Daten lesen

Lesen Sie alle Blätter mit read_excel gleichzeitig in die Variable a. Für a ist 0-9 der Schlüssel und DataFrame der Wert. a [0] ist der "gesamte" DataFrame für alle Branchen.

python3


import numpy as np, pandas as pd
cat = 'Total Land-, Wasser- und Forstwirtschaft Bergbau Metallmaschinen Chemische Leichtarbeiten Sonstige Arbeiten Emissionsspezial'.split()
rng = list(range(len(cat)))
a = pd.read_excel('http://www.mlit.go.jp/sogoseisaku/transport/butsuryucensus/T9-010301.xls',
    rng, skip_footer=1, skiprows=8, header=None, index_col=0, parse_cols=np.arange(1,49))
a[0].ix[:3, :7]
1 2 3 4 5 6 7
1
Nordseestraße 944271.4669 6728.8486 1075.6893 7623.1429 2350.6049 164.8547 4221.1922
Blue Forest 22969.4545 257605.0057 12702.7039 2857.1319 8079.5519 750.9524 1799.4754
Rock Hand 211.2175 5090.7300 194668.7805 10623.9818 1518.8552 676.9535 1244.9179

Es stellt eine Präfektur dar, deren Zeile From ist, und eine Präfektur, deren Spalte To ist, und ist eine 47 x 47-Matrix.

Normalisieren

Nach Branche in absteigender Reihenfolge des Volumens sortieren.

python3


prefs = a[0].index.map(lambda x: x.replace('\u3000', ''))
b = [pd.DataFrame([(prefs[i], prefs[j], a[h].iloc[i, j]) for i in range(47) for j in range(47)
    if i != j], columns=['From', 'To', 'Val']).sort_values('Val', ascending=False) for h in rng]
b[0][:3]
From To Val
1080 Mie Aichi 170322.9506
1268 Hyogo Osaka 165543.7879
1499 Okayama Hyogo 142949.9022

Zeichnen Sie ein Diagramm mit den fünf wichtigsten Durchflussraten in jeder Branche

Die Abbildung wird als "fig_industry.png " ausgegeben. Die Anzahl der Durchflussraten beträgt 1000 Tonnen / Jahr.

python3


from graphviz import Digraph
from IPython.display import display
for h, c in zip(rng, cat):
    g = Digraph(format='png')
    g.attr('graph', label=c, labelloc='t')
    g.node_attr['fontsize'] = '10'
    for _, r in b[h][:5].iterrows():
        g.edge(r.From, r.To, label='%d'%(r.Val//1000))
    g.render('fig_%s'%c)
    display(g)

fig_合計.png fig_農水.png fig_林業.png fig_鉱産.png fig_金属機械.png fig_化学.png fig_軽工.png fig_雑工.png fig_排出.png fig_特殊.png

das ist alles

Recommended Posts

Visualisierung der Logistik mit Python
Datenanalyse beginnend mit Python (Datenvisualisierung 1)
Datenanalyse beginnend mit Python (Datenvisualisierung 2)
FizzBuzz in Python3
Scraping mit Python
Scraping mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Bingo mit Python
Zundokokiyoshi mit Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Empfehlung von Altair! Datenvisualisierung mit Python
Text Mining mit Python ② Visualisierung mit Word Cloud
Serielle Kommunikation mit Python
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet
Python mit Eclipse + PyDev.
Socket-Kommunikation mit Python
Datenanalyse mit Python 2
Scraping in Python (Vorbereitung)
Versuchen Sie es mit Python.
Python lernen mit ChemTHEATER 03
Sequentielle Suche mit Python
"Objektorientiert" mit Python gelernt
Umgang mit Yaml mit Python
Löse AtCoder 167 mit Python
Serielle Kommunikation mit Python
[Python] Verwenden Sie JSON mit Python
Python lernen mit ChemTHEATER 05-1
Lerne Python mit ChemTHEATER
Führen Sie prepDE.py mit python3 aus
Visualisierungsnotiz von Python
Python-Datenvisualisierungsbibliotheken
1.1 Erste Schritte mit Python
Tweets mit Python sammeln
Binarisierung mit OpenCV / Python
3. 3. KI-Programmierung mit Python
Kernel-Methode mit Python
[Verschiedene Bildanalysen mit Plotly] Dynamische Visualisierung mit Plotly [Python, Bild]
Scraping mit Python + PhantomJS
Fahren Sie WebDriver mit Python
[Python] Mit CGIHTTPServer umleiten
Sprachanalyse mit Python
Denken Sie an Yaml mit Python
Kinesis mit Python betreiben
Verwenden Sie DynamoDB mit Python
[Mit Plotly auf die Karte schreiben] Dynamische Visualisierung mit Plotly [Python]
Zundko Getter mit Python
Behandle Excel mit Python
Ohmsches Gesetz mit Python
Führen Sie Blender mit Python aus
Python ab Windows 7
Heatmap von Python + matplotlib