Créer une carte de couleurs et une échelle de couleurs personnalisées dans Matplotlib
Problème :
Concevoir une palette de couleurs qui passe en douceur du rouge au violet puis au bleu, mappant des valeurs comprises entre -2 et 2. Utilisez la palette de couleurs pour colorer les points d'un tracé et afficher l'échelle de couleurs associée.
Mise en œuvre :
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors
# Generate random data
x, y, c = zip(*np.random.rand(30, 3) * 4 - 2)
# Create a custom colormap
colors = ["red", "violet", "blue"]
norm = plt.Normalize(-2, 2)
cmap = matplotlib.colors.LinearSegmentedColormap.from_list("", colors)
# Plot using custom colormap
plt.scatter(x, y, c=c, cmap=cmap, norm=norm)
# Add color scale
plt.colorbar()
plt.show()
Copier après la connexion
Explication :
-
LinearSegmentedColormap : Au lieu d'une ListedColormap qui produit des couleurs discrètes, nous utilisez une LinearSegmentedColormap pour créer un dégradé continu.
-
Normalisation : La fonction Normalize mappe les valeurs des données dans une plage comprise entre 0 et 1, en veillant à ce que les couleurs soient correctement réparties.
-
Spécification RGBA : Les couleurs sont spécifiées sous forme de chaînes des noms de couleurs souhaités.
-
Scatter Plot : Les points de données sont tracés à l'aide de la palette de couleurs personnalisée et chaque point se voit attribuer une couleur en fonction de la valeur de données correspondante.
-
Échelle de couleurs : La barre de couleurs affiche la couleur dégradé et les valeurs mappées, permettant à l'utilisateur de visualiser la relation couleur-valeur.
Considérations supplémentaires :
-
Valeurs multiples : Pour créer une palette de couleurs qui mappe plus de trois valeurs aux couleurs, spécifiez des tuples supplémentaires de valeurs et de couleurs normalisées dans la méthode from_list.
-
Tiques de la barre de couleurs : Ajustez les graduations de la barre de couleurs à l'aide de la méthode set_ticks pour personnaliser les valeurs affichées.
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!