2013-03-24 13 views
13

Come creare una griglia di countour in python utilizzando matplotlib.pyplot, dove la griglia è un colore in cui la variabile z è inferiore a zero e un'altra quando z è uguale o maggiore di zero? Non ho molta familiarità con matplotlib quindi se qualcuno può darmi un modo semplice per farlo, sarebbe fantastico.Contour graph in python

Finora ho:

x= np.arange(0,361) 
y= np.arange(0,91) 

X,Y = np.meshgrid(x,y) 

area = funcarea(L,D,H,W,X,Y) #L,D,H and W are all constants defined elsewhere. 

plt.figure() 
plt.contourf(X,Y,area) 
plt.show() 
+1

Quale versione di python usi (2 o 3) – xxmbabanexx

risposta

37

È possibile farlo utilizzando la parola chiave levels in contourf.

enter image description here

import numpy as np 
import matplotlib.pyplot as plt 

fig, axs = plt.subplots(1,2) 

x = np.linspace(0, 1, 100) 
X, Y = np.meshgrid(x, x) 
Z = np.sin(X)*np.sin(Y) 

levels = np.linspace(-1, 1, 40) 

zdata = np.sin(8*X)*np.sin(8*Y) 

cs = axs[0].contourf(X, Y, zdata, levels=levels) 
fig.colorbar(cs, ax=axs[0], format="%.2f") 

cs = axs[1].contourf(X, Y, zdata, levels=[-1,0,1]) 
fig.colorbar(cs, ax=axs[1]) 

plt.show() 

È possibile modificare i colori, scegliendo e diverso colormap; usando vmin, vmax; ecc.

+1

Cheers! Funziona benissimo :) – apkdsmith

+5

Quindi si prega di contrassegnare questa risposta come soluzione ... –