2016-05-10 3 views
2

J'ai construit quelques parcelles de dispersion de matplotlib logarithmique assez simples. Je suis content des résultats obtenus jusqu'à maintenant, mais je dois changer la couleur de chaque zone de la grille.Comment utiliser Matplotlib pyplot pcolor pour fournir une couleur distincte à chaque grille de ma parcelle

Terrain actuel:

enter image description here

Je voudrais comprendre comment je pouvais faire ce qui suit:

enter image description here

Je vous remercie de toute aide. Merci.

+0

Veuillez écrire le code qui génère le tracé d'origine. – fjarri

Répondre

0

Tracez une petite image sous le diagramme de dispersion, avec un entier indiquant la couleur de la mosaïque. Vous pouvez ensuite utiliser pcolor pour tracer l'image, avec edgecolors pour définir les bordures. Le code ci-dessous le fait, avec la couleur de la cellule définie comme le maximum de l'indice de cellule i, j, qui correspond à votre grille.

import numpy as np 
import matplotlib.pyplot as plt 

# define grid 
nx, ny = 6, 5 
x, y = np.arange(nx), np.arange(ny) 
xx, yy = np.meshgrid(x, y) 
z = np.maximum(xx, yy) 

# create random points 
npoints = 30 
data_x = 10**(np.random.rand(npoints)*nx) 
data_y = 10**(np.random.rand(npoints)*ny-1) 

# plot grid then points 
plt.pcolor(10.**x, 10.**(y-1), z, edgecolors='k') 
plt.loglog(data_x, data_y, '.w') 
plt.axis([1,10**5,0.1,10**3]) 
plt.show() 

Notez que vous pouvez également utiliser zorder = n pour forcer le nuage de points au-dessus de l'image.

+0

Merci! C'est exactement ce dont j'avais besoin. – JoeG