Maison > développement back-end > Tutoriel Python > Tracer des tracés de couleurs dans Matplotlib

Tracer des tracés de couleurs dans Matplotlib

王林
Libérer: 2024-02-14 18:30:04
avant
1033 Les gens l'ont consulté

在 Matplotlib 中绘制颜色图

Contenu des questions

J'aime beaucoup les cartes de couleurs supplémentaires dans plotly, telles que "Dense" ou "Ice". Néanmoins, j'utilise actuellement matplotlib pour la plupart de mes tracés.

Existe-t-il un moyen d'utiliser les palettes de couleurs pyplot dans les figures matplotlib ?

Quand je prends la palette de couleurs "ice" comme exemple, les seuls résultats que j'obtiens sont des couleurs RVB sous forme de chaînes

import plotly.express as px

px.colors.sequential.ice
Copier après la connexion

C'est juste un retour

['rgb(3, 5, 18)',
 'rgb(25, 25, 51)',
 'rgb(44, 42, 87)',
 'rgb(58, 60, 125)',
 'rgb(62, 83, 160)',
 'rgb(62, 109, 178)',
 'rgb(72, 134, 187)',
 'rgb(89, 159, 196)',
 'rgb(114, 184, 205)',
 'rgb(149, 207, 216)',
 'rgb(192, 229, 232)',
 'rgb(234, 252, 253)']
Copier après la connexion

Le problème est que je ne sais pas comment l'utiliser dans les tracés matplotlib. J'ai essayé de créer une palette de couleurs personnalisée

my_cmap = matplotlib.colors.listedcolormap(px.colors.sequential.ice, name='my_colormap_name')
Copier après la connexion

Mais cela me donne l'erreur suivante lorsqu'il est utilisé dans un tracé :

ValueError: Invalid RGBA argument: 'rgb(3, 5, 18)'
Copier après la connexion

Est-ce que quelqu'un sait comment le convertir correctement ?


Bonne réponse


Vous devez décoder la chaîne RVB :

import plotly.express as px
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors

samples = 20
ice = px.colors.sample_colorscale(px.colors.sequential.ice, samples)
rgb = [px.colors.unconvert_from_rgb_255(px.colors.unlabel_rgb(c)) for c in ice]

cmap = mcolors.listedcolormap(rgb, name='ice', n=samples)
Copier après la connexion

Démo :

import numpy as np

gradient = np.linspace(0, 1, 256)
gradient = np.vstack((gradient, gradient))
plt.imshow(gradient, aspect='auto', cmap=cmap)
plt.show()
Copier après la connexion

Sortie :

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!

source:stackoverflow.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal