Maison  >  Article  >  développement back-end  >  Normalisation de la palette de couleurs Matplotlib : visualisation de données non linéaires

Normalisation de la palette de couleurs Matplotlib : visualisation de données non linéaires

PHPz
PHPzoriginal
2024-08-19 16:40:42850parcourir

Introduction

Matplotlib Colormap Normalization: Visualizing Nonlinear Data

Dans la visualisation de données, les cartes de couleurs sont utilisées pour représenter des données numériques par la couleur. Cependant, la distribution des données peut parfois être non linéaire, ce qui peut rendre difficile la reconnaissance des détails des données. Dans de tels cas, la normalisation des palettes de couleurs peut être utilisée pour mapper les palettes de couleurs sur les données de manière non linéaire afin de faciliter une visualisation plus précise des données. Matplotlib fournit plusieurs méthodes de normalisation, notamment SymLogNorm et AsinhNorm, qui peuvent être utilisées pour normaliser les palettes de couleurs. Cet atelier montrera comment utiliser SymLogNorm et AsinhNorm pour mapper des cartes de couleurs sur des données non linéaires.

Conseils sur les machines virtuelles

Une fois le démarrage de la VM terminé, cliquez sur le coin supérieur gauche pour passer à l'onglet Notebook afin d'accéder à Jupyter Notebook pour vous entraîner.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook termine le chargement. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes lors de l'apprentissage, n'hésitez pas à demander à Labby. Fournissez vos commentaires après la session et nous résoudrons rapidement le problème pour vous.

Importer les bibliothèques requises

Dans cette étape, nous importerons les bibliothèques nécessaires, notamment les couleurs Matplotlib, NumPy et Matplotlib.

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.colors as colors

Créer des données synthétiques

Dans cette étape, nous allons créer un ensemble de données synthétiques composé de deux bosses, une négative et une positive, la bosse positive ayant une amplitude huit fois supérieure à la bosse négative. Nous appliquerons ensuite SymLogNorm pour visualiser les données.

def rbf(x, y):
    return 1.0 / (1 + 5 * ((x ** 2) + (y ** 2)))

N = 200
gain = 8
X, Y = np.mgrid[-3:3:complex(0, N), -2:2:complex(0, N)]
Z1 = rbf(X + 0.5, Y + 0.5)
Z2 = rbf(X - 0.5, Y - 0.5)
Z = gain * Z1 - Z2

shadeopts = {'cmap': 'PRGn', 'shading': 'gouraud'}
colormap = 'PRGn'
lnrwidth = 0.5

Appliquer SymLogNorm

Dans cette étape, nous appliquerons SymLogNorm aux données synthétiques et visualiserons les résultats.

fig, ax = plt.subplots(2, 1, sharex=True, sharey=True)

pcm = ax[0].pcolormesh(X, Y, Z,
                       norm=colors.SymLogNorm(linthresh=lnrwidth, linscale=1,
                                              vmin=-gain, vmax=gain, base=10),
                       **shadeopts)
fig.colorbar(pcm, ax=ax[0], extend='both')
ax[0].text(-2.5, 1.5, 'symlog')

pcm = ax[1].pcolormesh(X, Y, Z, vmin=-gain, vmax=gain,
                       **shadeopts)
fig.colorbar(pcm, ax=ax[1], extend='both')
ax[1].text(-2.5, 1.5, 'linear')

plt.show()

Appliquer la norme Asinh

Dans cette étape, nous appliquerons AsinhNorm aux données synthétiques et visualiserons les résultats.

fig, ax = plt.subplots(2, 1, sharex=True, sharey=True)

pcm = ax[0].pcolormesh(X, Y, Z,
                       norm=colors.SymLogNorm(linthresh=lnrwidth, linscale=1,
                                              vmin=-gain, vmax=gain, base=10),
                       **shadeopts)
fig.colorbar(pcm, ax=ax[0], extend='both')
ax[0].text(-2.5, 1.5, 'symlog')

pcm = ax[1].pcolormesh(X, Y, Z,
                       norm=colors.AsinhNorm(linear_width=lnrwidth,
                                             vmin=-gain, vmax=gain),
                       **shadeopts)
fig.colorbar(pcm, ax=ax[1], extend='both')
ax[1].text(-2.5, 1.5, 'asinh')

plt.show()

Résumé

Dans cet atelier, nous avons appris à utiliser SymLogNorm et AsinhNorm pour mapper des cartes de couleurs sur des données non linéaires. En appliquant ces méthodes de normalisation, nous pouvons visualiser les données avec plus de précision et discerner les détails des données plus facilement.


? Entraînez-vous maintenant : normalisation de la palette de couleurs Matplotlib


Vous voulez en savoir plus ?

  • ? Apprenez les derniers arbres de compétences Python
  • ? Lire plus de didacticiels Python
  • ? Rejoignez notre Discord ou tweetez-nous @WeAreLabEx

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn