Python/MatPlotLib产生奇怪的,意外的轮廓

bar*_*ter 1 python wolfram-mathematica matplotlib

我试图在单位正方形的4个顶点处绘制一个函数,该函数为0,在该正方形的中间为1.我试过这个:

import matplotlib.pyplot 
z = [[0,0,0], [1,0,0], [0,1,0], [1,1,0], [.5,.5,1]] 
cn = matplotlib.pyplot.contour(z) 
matplotlib.pyplot.show(cn) 
Run Code Online (Sandbox Code Playgroud)

得到了这个:

在此输入图像描述

我期待一系列同心正方形,如下所示:

在此输入图像描述

这就是我做的时候

ListContourPlot[{{0,0,0}, {1,0,0}, {0,1,0}, {1,1,0}, {.5,.5,1}}, 
ColorFunction -> (Hue[#1]&)] 
Run Code Online (Sandbox Code Playgroud)

在Mathematica.

我做错了什么?

编辑:我意识到为给定数据绘制轮廓的方法不止一种.在这种情况下,一系列同心圆也可以.

pel*_*son 5

对于非网格数据,如评论中所建议的,您可能希望使用tricontour函数:

>>> import matplotlib.pyplot as plt
>>> z = [[0,0,0], [1,0,0], [0,1,0], [1,1,0], [.5,.5,1]] 
>>> x, y, z = zip(*z)
>>> cn = plt.tricontourf(x, y, z)
>>> plt.show()
Run Code Online (Sandbox Code Playgroud)

产量

HTH