2013-03-24 2 views
13

Как создать сетку счетчика в python, используя matplotlib.pyplot, где сетка - это один цвет, где переменная z находится ниже нуля и другая, когда z равна или больше нуля? Я не очень хорошо знаком с matplotlib, поэтому, если кто-нибудь может дать мне простой способ сделать это, это будет здорово.Контурный график в python

До сих пор у меня есть:

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

Какая версия python вы используете (2 или 3) – xxmbabanexx

ответ

37

Вы можете сделать это, используя ключевое слово в levels 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() 

Вы можете изменить цвет, выбирая и разные colormap; используя vmin, vmax; и т. д.

+1

Приветствия! Это отлично работает :) – apkdsmith

+5

Поэтому, пожалуйста, отметьте этот ответ как решение ... –

Смежные вопросы