Python

Cartes thermiques et barres de couleurs dans Matplotlib

Cartes thermiques et barres de couleurs dans Matplotlib
La visualisation des données est l'une des étapes les plus cruciales de la science des données (ou de toute autre science, d'ailleurs). Nous, en tant qu'humains, sommes incapables de donner un sens aux rangées et rangées de nombre. C'est pourquoi il est toujours utile d'avoir un utilitaire comme Matplotlib pour nous aider à développer une intuition visuelle de ce qui se passe quand, par exemple, un algorithme d'apprentissage automatique classe d'énormes quantités de données.

Alors que les graphiques montrant la relation entre deux variables comme la taille et le poids peuvent être facilement tracés sur un écran plat comme indiqué ci-dessous, les choses deviennent vraiment compliquées lorsque nous avons plus de deux paramètres.

C'est à ce moment-là que les gens essaient de passer aux tracés 3D, mais ceux-ci sont souvent déroutants et maladroits, ce qui va à l'encontre de l'objectif de la visualisation des données. Nous avons besoin de cartes thermiques pour les visuels.

Que sont les cartes thermiques?

Si vous regardez l'image d'une caméra thermique, vous pouvez voir une carte thermique littérale. La caméra thermique représente différentes températures sous forme de différentes couleurs. Le schéma de coloration fait appel à notre intuition que le rouge est une "couleur chaude" et prend le bleu et le noir pour représenter les surfaces froides.

Cette vue de mars est un très bon exemple où les régions froides sont de couleur bleue alors que les régions plus chaudes sont largement rouges et jaunes. La barre de couleur dans l'image montre quelle couleur représente quelle température.

En utilisant matplotlib, nous pouvons associer à un point (x,y) sur le graphique une couleur spécifique représentant la variable que nous essayons de visualiser. Il n'est pas nécessaire que ce soit la température, cela pourrait être n'importe quelle autre variable. Nous afficherons également un barre de couleur à côté pour indiquer aux utilisateurs ce que signifient les différentes couleurs.

Souvent, vous verriez des gens mentionner des cartes de couleurs au lieu de cartes thermiques. Ceux-ci sont souvent utilisés de manière interchangeable. La palette de couleurs est un terme plus générique.

Installation et importation de Matplotlib et des packages associés

Pour commencer avec Matplotlib, assurez-vous que Python (de préférence Python 3 et pip) est installé. Vous aurez également besoin numpy, scipy et pandas travailler avec des jeux de données. Puisque nous allons tracer une fonction simple, seuls deux des packages numpy et matplotlib va être nécessaire.

$ pip installer matplotlib numpy
#ou si vous avez à la fois python deux et trois installés
$ pip3 installer matplotlib numpy

Une fois que vous avez installé les bibliothèques, vous devez vous assurer qu'elles sont importées dans votre programme python.

importer numpy en tant que np
importer matplotlib.pyplot en tant que plt

Vous pouvez maintenant utiliser les fonctions fournies par ces bibliothèques en utilisant une syntaxe comme np.fonction numpy()et  plt.une autre fonction().

Quelques exemples

Commençons par tracer une fonction mathématique simple qui prend des points sur un plan (leurs coordonnées x et y) et leur attribue une valeur. La capture d'écran ci-dessous montre la fonction avec le tracé.

Les différentes couleurs représentent différentes valeurs (comme indiqué par l'échelle à côté du tracé). Regardons le code qui peut être utilisé pour générer ce.

importer numpy en tant que np
importer matplotlib.pyplot en tant que plt
 
# Fonction mathématique dont nous avons besoin pour tracer
def z_func(x, y):
retour (1 - (x ** 2 + y ** 3)) * np.exp(-(x ** 2 + y ** 2) / 2)
# Configuration des valeurs d'entrée
x = np.ranger (-3.0, 3.0, 0.1)
y = np.ranger (-3.0, 3.0, 0.1)
X, Y = np.maillage(x, y)
 
# Calculer la sortie et la stocker dans le tableau Z
Z = z_func(X, Y)
 
im = plt.imshow(Z, cmap=plt.cm.RdBu, étendue=(-3, 3, 3, -3), interpolation='bilinéaire')
 
plt.barre de couleur(im);
 
plt.titre('$z=(1-x^2+y^3) e^-(x^2+y^2)/2$')
 
plt.spectacle()

La première chose à remarquer est que nous importons juste matplotlib.pyplot une petite partie de la bibliothèque entière. Étant donné que le projet est assez ancien, il a accumulé beaucoup de choses au fil des ans. Par exemple, matplotlib.pyplot était populaire à l'époque, mais n'est plus qu'une relique historique et son importation ne fait qu'ajouter plus de poids à votre programme.

Ensuite, nous définissons la fonction mathématique que nous souhaitons tracer. Il prend deux valeurs (x,y) et renvoie la troisième valeur z. Nous avons défini la fonction pas encore utilisée.

La section suivante se charge de créer un tableau de valeurs d'entrée, nous utilisons numpy pour cela bien que vous puissiez utiliser le build in intervalle() fonction pour cela si vous aimez. Une fois la liste des valeurs x et y préparée (allant de moins 3 à 3), nous en calculons la valeur z.

Maintenant que nous avons calculé nos entrées et sorties, nous pouvons tracer les résultats. le plt.imshow() dit à python que l'image va être concernée par Z qui est notre variable de sortie. Il dit aussi que ce sera une palette de couleurs, une carte, avec Rouge Bleu (RdBu) échelle s'étendant de -3 à 3 sur chaque axe. le interpolation paramètre rend le graphique plus lisse, artificiellement. Sinon, votre image aurait l'air assez pixelisée et grossière.

À ce stade, le graphique est créé, mais pas imprimé. Nous ajoutons ensuite la barre de couleur sur le côté pour aider à corréler différentes valeurs de Z avec différentes couleurs et mentionnons l'équation dans le titre. Ceux-ci se font par étapes plt.barre de couleur(im) et plt.Titre(… ). Enfin, l'appel de la fonction nous montre le graphique à l'écran.

Réutilisabilité

Vous pouvez utiliser la structure ci-dessus pour tracer n'importe quelle autre palette de couleurs 2D. Vous n'êtes même pas obligé de vous en tenir aux fonctions mathématiques. Si vous avez d'énormes tableaux de données dans votre système de fichiers, peut-être des informations sur une certaine démographie, ou toute autre donnée statistique que vous pouvez brancher en modifiant le X, Y valeurs sans altérer la section de la palette de couleurs.

J'espère que vous avez trouvé cet article utile et si vous aimez un contenu similaire, faites-le nous savoir.

Comment capturer et diffuser votre session de jeu sur Linux
Dans le passé, jouer à des jeux n'était considéré qu'un passe-temps, mais avec le temps, l'industrie du jeu a connu une croissance énorme en termes de...
Meilleurs jeux à jouer avec le suivi des mains
Oculus Quest a récemment introduit l'idée géniale du suivi manuel sans contrôleurs. Avec un nombre toujours croissant de jeux et d'activités qui exécu...
Comment afficher la superposition OSD dans les applications et jeux Linux en plein écran
Jouer à des jeux en plein écran ou utiliser des applications en mode plein écran sans distraction peut vous couper des informations système pertinente...