Nuage de points barre de couleur - Matplotlib
J'essaie de montrer une barre de couleur de mon nuage de points, mais je vais le garder reçois l'erreur:
TypeError: Vous devez d'abord set_array pour transposable
C'est ce que je fais de la parcelle:
# Just plotting the values of data that are nonzero
x_data = numpy.nonzero(data)[0] # x coordinates
y_data = numpy.nonzero(data)[1] # y coordinates
# Mapping the values to RGBA colors
data = plt.cm.jet(data[x_data, y_data])
pts = plt.scatter(x_data, y_data, marker='s', color=data)
plt.colorbar(pts)
Si je commente la ligne plt.colorbar(pts)
j'ai eu l'intrigue correctement, mais je voudrais le tracé de la barre de couleur aussi.
Vous en remercie d'avance.
OriginalL'auteur pceccon | 2014-07-18
Vous devez vous connecter pour publier un commentaire.
Vous êtes de passage dans certaines valeurs rvb, donc matplotlib ne pouvez pas construire une palette de couleurs, car il ne sait pas comment il se rapporte à vos données d'origine.
Au lieu de mappage des valeurs de couleurs RVB, laissez
scatter
gérer pour vous.Au lieu de:
Faire:
(Passez simplement à
c
ce que vous avez été à l'origine de passage dansplt.cm.jet
.)Alors vous serez en mesure de construire une palette de couleurs normalement. L'erreur spécifique est vous dire que les couleurs ont été réglée manuellement, plutôt que par le biais de
set_array
(qui s'occupe de la cartographie d'un ensemble de données de valeurs de RVB).Non,
color
est un alias pourfacecolors
. (C'est un peu déroutant, mais il est dû à l'héritage matlab de traçage, de l'api.)c
est un acquis de croissance à partir de l'original matlab scatter.scatter
est destiné à être appelé commescatter(x, y, c=z1, s=z1)
pour afficher simultanément 4 variables. (Deux positions, changent de couleur, et varient selon la taille). En coulisses,color
appelsset_facecolors
etc
appelsset_array
sur la sortie de la collection. Dans le long terme, il est probablement une bonne idée de fairecolor
se comportent de façon identique àc
si un scalaire, un tableau passé en.Huuum, compris. (: Par contre, mes couleurs sont assez différents (et j'ai eu des places avec des contours blancs) de l'autre intrigue, même si je passe l'argument cmap=plt.cm.jet.
Yep! C'est parce que dans votre exemple, la plage de données à l'échelle entre 0 et 1, tandis que dans mon exemple, c'est d'être à l'échelle entre le min et le max de données. Pour le rendre identique à l'original, l'utilisation
cmin=0, cmax=1
.Oh, je vois. Beaucoup de choses à apprendre... Merci. (:
OriginalL'auteur Joe Kington