2013-10-04 149 views
4

我试图用matplotlib的pcolor函数实现一个等高线图,但是,似乎有一些与网格排列有关的细微规则来确保完全覆盖的图形。python matplotlib pcolor空白空间

举例说明:

a = arange(0., .8+.16, .16) 
b = arange(0., .5+.10, .10) 
A, B = meshgrid(a, b) 
Z = A + B 
pcolor(A,B,Z) 

这将返回数字 enter image description here

尽管shape(A) = shape(B) = 6。所以我的问题很简单:什么是影响上图右边的空白和我怎样才能删除它?谢谢。

+0

你也可以用'做的更好a = np.linspace(0,0.8,6,endpoint = True)' – tacaswell

回答

5

你看到的是浮点数四舍五入的结果。可以表示为Python浮点数的最接近0.8的数字是0.80000000000000004。 Matplotlib然后围绕它的下一个“好”数字来放置轴刻度标记的想法。您可以通过显式设置轴限制控制这一行为:

xlim(0, 0.8) 

或告诉Matplotlib以满足您的数据准确,而不是设置限制概数:

axis('tight') 
+0

你能告诉我怎么做'contourf'吗? – diffracteD