我正在尝试使用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)
返回图
尽管shape(A)
= shape(B)
= 6.所以我的问题很简单:影响图右侧空白区的是什么以及如何将其删除?感谢。
答案 0 :(得分:5)
您所看到的是浮点数舍入的结果。可以表示为Python float的最接近0.8的数字是0.80000000000000004。然后Matplotlib完成了下一个“漂亮”数字的想法,在该数字上放置一个轴刻度标记。您可以通过显式设置轴限制来控制此行为:
xlim(0, 0.8)
或告诉Matplotlib完全符合您的数据,而不是将限制设置为整数:
axis('tight')