[Python] Zeichnen Sie Daten nach Präfektur auf einer Karte (Anzahl der Autos im ganzen Land)

Zweck dieses Artikels

Zeichnen Sie mit Python eine farbige Karte auf Präfekturebene wie die folgende Informationen zu Stadt / Gemeinde / Stadt / Dorf finden Sie unter hier.

how_many_cars_map.png

Die Daten verwendeten übrigens die Anzahl der Personenkraftwagen, die landesweit im Besitz waren.

Am Ende der Seite befindet sich eine [Codeliste](# Codeliste).

Kommentar

Verwenden Sie eine Bibliothek namens japanmap, um farbige Karten zu erstellen

pip install japanmap

Vorbereitung anderer Bibliotheken

import numpy as np
import pandas as pd
import cv2
from PIL import Image
import matplotlib.colors
import matplotlib.pyplot as plt
from japanmap import *

Daten lesen Die Daten wurden durch Herunterladen der Excel-Datei 2019 von hier verarbeitet.

df = pd.read_csv("how_many_cars.csv")
df = df.iloc[:53,:8]

Speichern Sie die Anzahl der Personenkraftwagen nach Präfektur im Wörterbuchformat

for k,n in zip(df["Transportbüro"], df["Personenkraftwagen"]):
    if k in ["Sapporo", "Hakodate", "Asahikawa", "Muroran", "Kushiro", "Obihiro", "Kitami"]:
        tmp=1
    else:
        tmp = pref_code(k)
    tmp = pref_names[tmp]
    #print(k,tmp)
    if tmp not in num_dict:
        num_dict[tmp] = n
    else:
        num_dict[tmp] += n

Der Inhalt von num_dict ist immer noch so

num_dict


>> print(num_dict)
{'Präfektur Mie': 1161089.0,
 'Kyoto': 1007847.0,
  ...
 'Präfektur Tottori': 346273.0,
 'Präfektur Kagoshima': 955360.0}

Konvertieren Sie den erstellten num_dict-Wert von der Anzahl der Einheiten in Farbinformationen (RGB).

n_min = min(num_dict.values())
n_max = max(num_dict.values())

#print(n_min)
#print(n_max)

cmap = plt.cm.rainbow
norm = matplotlib.colors.Normalize(vmin=n_min, vmax=n_max)

def color_scale(r):
    tmp = cmap(norm(r))
    return (tmp[0]*255, tmp[1]*255, tmp[2]*255)

for k,v in num_dict.items():
    num_dict[k] = color_scale(v)

Inhalt des endgültigen num_dict

num_dict


>> print(num_dict)
{'Präfektur Mie': (19.5, 157.4059464288972, 241.021876181009),
 'Kyoto': (41.49999999999999, 128.85792190698177, 246.1066417260737),
  ...
 'Präfektur Tottori': (127.5, 0.0, 255.0),
 'Präfektur Kagoshima': (47.5, 120.63885699318257, 247.29821868892742)}

Plotten Sie, indem Sie num_dict an japanmap übergeben

plt.figure(figsize=(10,8))
plt.imshow(picture(num_dict))

sm = plt.cm.ScalarMappable(cmap=cmap, norm=norm)
plt.colorbar(sm)
plt.show()

das ist alles!

Codeliste

pip install japanmap
import numpy as np
import pandas as pd
import cv2
from PIL import Image
import matplotlib.colors
import matplotlib.pyplot as plt
from japanmap import *

df = pd.read_csv("how_many_cars.csv")
df = df.iloc[:53,:8]

num_dict={}

for k,n in zip(df["Transportbüro"], df["Personenkraftwagen"]):
    if k in ["Sapporo", "Hakodate", "Asahikawa", "Muroran", "Kushiro", "Obihiro", "Kitami"]:
        tmp=1
    else:
        tmp = pref_code(k)
    tmp = pref_names[tmp]
    #print(k,tmp)
    if tmp not in num_dict:
        num_dict[tmp] = n
    else:
        num_dict[tmp] += n

n_min = min(num_dict.values())
n_max = max(num_dict.values())

#print(n_min)
#print(n_max)

cmap = plt.cm.rainbow
norm = matplotlib.colors.Normalize(vmin=n_min, vmax=n_max)

def color_scale(r):
    tmp = cmap(norm(r))
    return (tmp[0]*255, tmp[1]*255, tmp[2]*255)

for k,v in num_dict.items():
    num_dict[k] = color_scale(v)

plt.figure(figsize=(10,8))
plt.imshow(picture(num_dict))

sm = plt.cm.ScalarMappable(cmap=cmap, norm=norm)
plt.colorbar(sm)
plt.show()

Recommended Posts

[Python] Zeichnen Sie Daten nach Präfektur auf einer Karte (Anzahl der Autos im ganzen Land)
Folium: Visualisieren Sie Daten auf einer Karte mit Python
Versuchen Sie, die Umweltkonzentration organischer Fluorverbindungen mit offenen Daten auf einer Karte darzustellen
Visualisierung von Daten nach Präfektur
Eine einfache Datenanalyse von Bitcoin, die von CoinMetrics in Python bereitgestellt wird
Visualisieren Sie Präfekturen mit vielen Routen nach Präfekturen auf einer Karte von Japan
Impressionen von Touch, einem von Python erstellten Datenvisualisierungstool
Holen Sie sich die Anzahl der Leser von Artikeln über Mendeley in Python
Kartenmietinformationen auf einer Karte mit Python
Grundlegende Datenrahmenoperationen, die von Anfängern in einer Woche Python-Lernen geschrieben wurden
Ein Memo, das ein Tutorial zum Ausführen von Python auf Heroku erstellt hat
Memorandum der Extraktion durch Python BS4-Anfrage
Machen Sie mit Python eine Joyplot-ähnliche Handlung von R.
Aufgezeichnete Umgebung für die Datenanalyse mit Python
[Python] Speichern Sie die von OpenCV importierten Videodaten als JPG-Datei mit Seriennummer
[Wissenschaftlich-technische Berechnung mit Python] Plot, Visualisierung, Matplotlib von 2D-Daten, die aus einer Datei gelesen wurden
Konsolidieren Sie eine große Anzahl von CSV-Dateien in Ordnern mit Python (Daten ohne Header).
Lassen Sie uns eine Rangfolge der Anzahl der wirksamen Reproduktionen des neuen Koronavirus nach Präfektur erstellen
[Python] Ein Programm, das die Anzahl der Täler zählt
Gruppieren Sie nach aufeinanderfolgenden Elementen einer Liste in Python
[Python] Generieren Sie zufällig eine große Anzahl englischer Personennamen
Scraping von IDWR-Bulletin-Daten nach Anzahl der Berichte pro Influenza-Fixpunkt und nach Präfektur
Vorverarbeitung von Präfekturdaten
Ein Memorandum, in dem ich über mein persönliches HEROKU & Python (Flask) gestolpert bin
[Python] So erstellen Sie eine Liste von Zeichenfolgen Zeichen für Zeichen
Hinweise zum Umgang mit großen Datenmengen mit Python + Pandas
Führen Sie eine begrenzte Anzahl von Bildpräsentationsprogrammen auf PsychoPy aus
Aufzeichnung der Höllenstunden, die Python-Anfängern auferlegt wurden
[Schatzdaten] [Python] Führen Sie mit dem TD-Client eine Abfrage zu Schatzdaten aus.
Erstellen Sie eine Python-Datenanalyseumgebung auf einem Mac (El Capitan).
Einfach auf dem Mac! Darstellung der Einheitsschrittantwort mit Python
[Python] Das Clustering-Ergebnis mit K-Mitteln wird durch PCA verkleinert und in einem Streudiagramm dargestellt.
Festpunktbeobachtung bestimmter Daten im Web durch automatische Ausführung eines Webbrowsers auf dem Server (Ubuntu16.04) (2) -Web Scraping-