Skip to main content
 首页 » 编程设计

Python/MatPlotLib 产生奇怪的、意想不到的轮廓

2025年05月04日11unruledboy

我正在尝试绘制一个在 的 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)  

得到这个:

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

这是我做的时候得到的结果

ListContourPlot[{{0,0,0}, {1,0,0}, {0,1,0}, {1,1,0}, {.5,.5,1}},  
ColorFunction -> (Hue[#1]&)]  

在数学中。

我做错了什么?

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

请您参考如下方法:

对于非网格数据,如评论中所建议的,您可能想要使用 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() 

HTH