[Python] Tracer les données par préfecture sur une carte (nombre de voitures possédées dans tout le pays)

Objectif de cet article

Dessinez une carte colorée au niveau préfectoral comme celle ci-dessous avec Python Pour le niveau ville / quartier / ville / village, accédez à ici

how_many_cars_map.png

À propos, les données utilisaient le nombre de voitures particulières détenues dans tout le pays.

Il y a une [Liste de codes](# Liste de codes) à la fin de la page.

Commentaire

Utilisez une bibliothèque appelée japanmap pour créer des cartes colorées

pip install japanmap

Préparation d'autres bibliothèques

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 *

Lire les données Les données ont été traitées en téléchargeant le fichier Excel 2019 à partir de ici.

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

Enregistrer le nombre de voitures particulières par préfecture au format dictionnaire

for k,n in zip(df["Bureau des transports"], df["Voiture de voyageurs"]):
    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

Le contenu de num_dict est toujours comme ça

num_dict


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

Convertir la valeur num_dict créée du nombre d'unités en informations de couleur (RVB)

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)

Contenu du num_dict final

num_dict


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

Tracer en passant num_dict à japanmap

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

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

c'est tout!

Liste de codes

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["Bureau des transports"], df["Voiture de voyageurs"]):
    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] Tracer les données par préfecture sur une carte (nombre de voitures possédées dans tout le pays)
Folium: Visualisez les données sur une carte avec Python
Essayez de tracer la concentration environnementale des composés organiques du fluor sur une carte à l'aide de données ouvertes
Visualisation des données par préfecture
Une analyse simple des données de Bitcoin fournie par CoinMetrics en Python
Visualisez les préfectures avec de nombreux itinéraires par préfecture sur une carte du Japon
Impressions de toucher Dash, un outil de visualisation de données réalisé par python
Obtenez le nombre de lecteurs d'articles sur Mendeley en Python
Carte des informations de location sur une carte avec python
Opérations de base sur les blocs de données écrites par des débutants au cours d'une semaine d'apprentissage de Python
Un mémo qui a fait un tutoriel pour exécuter python sur heroku
Mémorandum d'extraction par requête python bs4
Créez un tracé de R semblable à un joyplot avec python
Environnement enregistré pour l'analyse des données avec Python
[Python] Enregistrez les données vidéo importées par OpenCV sous forme de fichier jpg de numéro de série
[Calcul scientifique / technique par Python] Tracé, visualisation, matplotlib de données 2D lues à partir d'un fichier
Consolider un grand nombre de fichiers CSV dans des dossiers avec python (données sans en-tête)
Établissons un classement du nombre de reproductions efficaces du nouveau virus corona par préfecture
[Python] Un programme qui compte le nombre de vallées
Regrouper par éléments consécutifs d'une liste en Python
[Python] Générer de manière aléatoire un grand nombre de noms de personne en anglais
Grattage des données du bulletin IDWR par nombre de rapports par point fixe de grippe et par préfecture
Pré-traitement des données préfectorales
Un mémorandum où je suis tombé sur mon HEROKU & Python personnel (Flask)
[Python] Comment créer une liste de chaînes de caractères caractère par caractère
Remarques sur la gestion de grandes quantités de données avec python + pandas
Exécutez un nombre limité de programmes de présentation d'images sur PsychoPy
Record des leçons de l'enfer imposées aux étudiants débutants en Python
[Treasure Data] [Python] Exécutez une requête sur Treasure Data à l'aide du client TD.
Créer un environnement d'analyse de données python sur Mac (El Capitan)
Facile sur Mac! Tracé de la réponse d'étape unitaire à l'aide de Python
[Python] Le résultat du clustering par K-means est réduit en dimension par PCA et tracé sur un diagramme de dispersion.
Observation en virgule fixe de données spécifiques sur le Web en exécutant automatiquement un navigateur Web sur le serveur (Ubuntu16.04) (2) -Web scraping-