2017-08-17 5 views
4

J'essaye de dessiner un nuage de points en Python avec le code couleur stocké dans la colonne 'couleur' ​​de l'espace de données. Et je reçois une erreur d'argument RGBA invalide.ValueError: Argument RGBA invalide: 'o'

Voici mon code et les données:

df.plot.scatter(x='x', y='y', c='color') 

     id   x  type  color  y 
0 109  570.4  ha  r  500.8 
1 110  632.4  ha  r  567.2 
2 111  399.4  of  b  487.2 
3 112  250.2  of  b  444.4 

...

+1

Je suppose que vous devez spécifier un code hexa RGBA pour la couleur plutôt que la chaîne '' color''. –

+0

ce que je veux faire est de lire le code de couleur de la colonne «couleur» de datafram. Alors que je peux différencier les données en fonction de la colonne de couleur. – ejshin1

Répondre

6

Je viens de résoudre par ce code.

col = df['type'].map({'ha':'r', 'of':'b', 'cu':'y'}) 
df.plot.scatter(x='x', y='y', c=col) 
+0

Il semble donc que l'argument 'c' de' pd.DataFrame.plot.scatter' doit ressembler à une liste avec les valeurs de couleur, plutôt que le nom d'une colonne contenant les couleurs (comme indiqué dans les docs pandas), droite? – davalo