2017-02-25 2 views
1

je les suivantes Pandas dataframe, où la colonne a représente une variable fictive:couleur conditionnelle avec matplotlib dispersion

Panda Dataframe

Ce que je voudrais faire est de donner mes marqueurs une couleur cmap='jet' suivant la valeur de Colonne b sauf quand la colonne une valeur est 1 où je la veux en gris.

Une idée de comment je peux faire cela?

Répondre

2

Vous devez marquer des valeurs qui sont égales à un et terrain:

import matplotlib.pyplot as plt 
import numpy as np 

# test data 
t = np.linspace(0, 2 * np.pi, 30) 
x = np.sin(t) 
x[3] = 1 
y = np.cos(t) 

# indices for 'bad' values 
indices = x == 1 
# calc colors from jet cmap 
cmap = plt.get_cmap('jet') 
colors = cmap((y - y.min())/y.ptp()) 

# normal values 
plt.scatter(t[~indices], x[~indices], c = colors[~indices], cmap = cmap) 
# bad values 
plt.scatter(t[indices], x[indices], c = 'grey') 
plt.show() 

enter image description here

Tableaux t, x, y représentent série de pandas géants.

+0

Fonctionne parfaitement! Merci beaucoup. – MattnDo