2013-05-28 11 views
2

Je veux tracer un nuage de points en python afin que chaque point (x, y) reçoive une nuance différente de la même couleur. Je suppose que les points de données sont classés dans data0x et data0y (selon la façon dont ils sont choisis par mon algorithme), donc je veux que ceux-ci soient plus sombres que ceux de la fin.Comment tracer des points de couleur différente?

ax.scatter(data0x, data0y,c=, marker=markers[0]) 

Comment cela peut-il être fait?

Répondre

3

Il y a quelques options. Vous pouvez utiliser les colormaps (comme le suggère tcaswell), ou vous pouvez également spécifier la couleur directement.

Je trouve généralement que lorsque je veux utiliser des couleurs spécifiques, il est plus facile de les spécifier directement plutôt que de penser à la couleur et de trouver comment l'obtenir à partir de la palette de couleurs. Dans le cas où c'est ce que vous voulez faire, voici un exemple pour spécifier la couleur directement dans un nuage de points.

import numpy as np 
import matplotlib.pyplot as plt 

x = np.random.rand(50) 
y = np.random.rand(50) 

c = np.array([1, 1, 0]) # base color, set for each point (here, yellow) 
z = x/max(x) # the darkness for each point (here, scale along x-axis) 

plt.scatter(x,y, s=300, c=c[np.newaxis,:]*z[:, np.newaxis], marker=">") 
plt.show() 

enter image description here

3

Vous souhaitez utiliser une carte en couleur (gallery). Vous devez attribuer (par ce que jamais système que vous voulez) un flotteur en [0, 1] à chaque point, dites

c = arange(len(data0x))/len(data0x) 

puis

ax.scatter(data0x, data0, c=c, cmap='blues',...) 
Questions connexes