120 votes

barre de couleurs matplotlib pour le scatter

Je travaille avec des données dont les données ont 3 paramètres de traçage : x, y, c. Comment créer une valeur de couleur personnalisée pour un nuage de points ?

En prolongeant cet exemple, j'essaie de faire :

 import matplotlib
import matplotlib.pyplot as plt
cm = matplotlib.cm.get_cmap('RdYlBu')
colors=[cm(1.*i/20) for i in range(20)]
xy = range(20)
plt.subplot(111)
colorlist=[colors[x/2] for x in xy] #actually some other non-linear relationship
plt.scatter(xy, xy, c=colorlist, s=35, vmin=0, vmax=20)
plt.colorbar()
plt.show()

mais le résultat est TypeError: You must first set_array for mappable

36voto

neurite Points 546

Voici la méthode OOP pour ajouter une barre de couleurs :

 fig, ax = plt.subplots()
im = ax.scatter(x, y, c=c)
fig.colorbar(im, ax=ax)

0voto

Nipun Batra Points 6089

Si vous cherchez à disperser par deux variables et la couleur par la troisième, Altair peut être un excellent choix.

Création du jeu de données

 import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

df = pd.DataFrame(40*np.random.randn(10, 3), columns=['A', 'B','C'])

Parcelle de l'Altaïr

 from altair import *
Chart(df).mark_circle().encode(x='A',y='B', color='C').configure_cell(width=200, height=150)

Parcelle

entrez la description de l'image ici

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X