Carte thermique par Python + matplotlib

Pour la visualisation de données avec Python et matploblib, essayez déjà pandas + divers traçage de données avec matplotlib et pandas pour essayer rapidement de visualiser l'ensemble de données. , Méthode de visualisation des données par matplotlib (+ pandas), etc. J'ai expliqué.

Cette fois, je vais dessiner une carte thermique, mais avant cela, revoyons la méthode de visualisation.

Résumé de la méthode de visualisation des données à partir du tableau

La visualisation des données fait ici référence à une illustration populaire constituée de tableaux. Un tableau est un format de données qui a plusieurs valeurs d'attribut et une donnée est représentée par une ligne. Il existe de nombreuses variantes, mais voici quelques méthodes de visualisation typiques qui constituent l'axe principal.

Graphique à barres (barre)

Ce graphique convient pour comparer la taille des données. Il existe des variantes telles que le dessin vertical et horizontal, l'empilement et l'organisation de plusieurs séries.

Graphique linéaire (ligne)

Il s'agit de la valeur par défaut lors de l'utilisation de la fonction plot avec matplotlib. Les données sont dessinées par une ligne reliant les points et une série devient une ligne. En particulier, c'est la meilleure méthode d'expression pour visualiser les modifications des données au fil du temps.

Zone

Aussi appelé un graphique en aires. À l'instar du graphique à lignes de pliage, il est facile de suivre les modifications des données de séries chronologiques, mais il est particulièrement adapté pour suivre les modifications des pourcentages et des totaux de données.

Dispersion

Il s'agit d'une bonne méthode de visualisation lorsque l'on examine la corrélation entre deux séries de données. La relation entre les axes X et Y est illustrée à l'emplacement des points de données. Lorsque la relation est claire, il peut être possible de saisir la corrélation en un coup d'œil sans avoir à la calculer.

Dessinez une carte thermique

La carte thermique montre la fréquence principalement par la nuance de couleur, et il est possible de visualiser à quelle position il y a beaucoup de données. Vous pouvez visualiser quelles parties des informations géographiques sont encombrées ou chaudes, et quelles parties du site Web ont le plus de visites et de clics.

Dessinez une carte thermique à partir d'un tableau multidimensionnel

Vous pouvez utiliser des cartes thermiques avec la fonction pcolor de matplotlib. La méthode suivante dessine une carte thermique simple en passant une matrice n x m et des étiquettes des axes X et Y en tant que matrice.

#Passez une matrice carrée et une matrice étiquetée X et Y
def draw_heatmap(data, row_labels, column_labels):
    #dessiner
    fig, ax = plt.subplots()
    heatmap = ax.pcolor(data, cmap=plt.cm.Blues)

    ax.set_xticks(np.arange(data.shape[0]) + 0.5, minor=False)
    ax.set_yticks(np.arange(data.shape[1]) + 0.5, minor=False)

    ax.invert_yaxis()
    ax.xaxis.tick_top()

    ax.set_xticklabels(row_labels, minor=False)
    ax.set_yticklabels(column_labels, minor=False)
    plt.show()
    plt.savefig('image.png')

    return heatmap

J'ai essayé de générer des nombres aléatoires de 900 données de 30 x 30. Il est dessiné comme suit.

heatmap.png

La nuance de couleur est déterminée par la valeur.

Utilisez un histogramme

Utilisez ensuite [histgram2d] de NumPy (http://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram2d.html).

Passer un nombre approprié de centaines de tableaux à x et y, respectivement, colorera les points correspondants dans l'image.

def draw_heatmap(x, y):
    heatmap, xedges, yedges = np.histogram2d(x, y, bins=50)
    extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]

    plt.figure()
    plt.imshow(heatmap, extent=extent)
    plt.show()
    plt.savefig('image.png')

La figure ci-dessous est un exemple de génération et de dessin d'environ 500 nombres aléatoires normalement distribués pour X et Y respectivement.

hist.png

Résumé

Une carte thermique visualise les données en ajoutant une dimension appelée couleur à un espace bidimensionnel. Cela peut également être utilisé comme une méthode de visualisation puissante en fonction de l'application.

Recommended Posts

Carte thermique par Python + matplotlib
Heatmap avec dendrogramme en Python + matplotlib
Créer une animation de tracé avec Python + Matplotlib
Manuel de graphisme Python avec Matplotlib.
Dessinez Riapnov Fractal avec Python, matplotlib
Quand matplotlib ne fonctionne pas avec python2.7
Effectuer un tracé de probabilité normale logarithmique avec Python, matplotlib
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
Grattage avec Python
Python avec Go
Les bases de #Python (#matplotlib)
Twilio avec Python
Intégrer avec Python
Jouez avec 2016-Python
AES256 avec python
Testé avec Python
python commence par ()
Animation avec matplotlib
avec syntaxe (Python)
Mon matplotlib (Python)
Japonais avec matplotlib
Bingo avec python
Zundokokiyoshi avec python
Animation avec matplotlib
histogramme avec matplotlib
Faire une animation avec matplotlib
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
[Python] Définissez la plage du graphique avec matplotlib
J'ai dessiné une carte thermique avec Seaborn [Python]
[Python] Rendons matplotlib compatible avec le japonais
Communication série avec Python
Zip, décompressez avec python
Django 1.11 a démarré avec Python3.6
Jugement des nombres premiers avec Python
Python avec eclipse + PyDev.
Communication de socket avec Python
Analyse de données avec python 2
Grattage en Python (préparation)
Apprendre Python avec ChemTHEATER 03
Recherche séquentielle avec Python
Exécutez Python avec VBA
Manipuler yaml avec python
Résolvez AtCoder 167 avec python
Communication série avec python
[Python] Utiliser JSON avec Python
Apprendre Python avec ChemTHEATER 05-1
Apprenez Python avec ChemTHEATER
Exécutez prepDE.py avec python3
1.1 Premiers pas avec Python
[Python] axe limite du graphe 3D avec Matplotlib
Collecter des tweets avec Python
Binarisation avec OpenCV / Python
3. 3. Programmation IA avec Python
Méthode Kernel avec Python
Non bloquant avec Python + uWSGI
Grattage avec Python + PhantomJS