python matplotlib pcolor空白

nei*_*nor 4 python matplotlib

我正在尝试使用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) 
Run Code Online (Sandbox Code Playgroud)

这返回了数字 在此输入图像描述

尽管shape(A)= shape(B)= 6.所以我的问题很简单:影响图右侧白色空间的是什么?如何删除它?谢谢.

Ray*_*Ray 5

您所看到的是浮点数舍入的结果.可以表示为Python float的最接近0.8的数字是0.80000000000000004.然后Matplotlib完成其下一个"漂亮"数字的想法,在该数字上放置一个轴刻度标记.您可以通过显式设置轴限制来控制此行为:

xlim(0, 0.8)
Run Code Online (Sandbox Code Playgroud)

或告诉Matplotlib准确地拟合您的数据,而不是设置圆数的限制:

axis('tight')
Run Code Online (Sandbox Code Playgroud)