这是我尝试的代码:

from scipy.spatial import ConvexHull
points = np.random.rand(30, 2)   # 30 random points in 2-D
hull = ConvexHull(points)

import matplotlib.pyplot as plt
%matplotlib inline
corners=[]
for simplex in hull.simplices:
    corners+=list(simplex)
plt.fill(points[corners, 0], points[corners, 1], 'k',alpha=0.3)

我唯一能得到的情节是:
Convex Hull of random set of points in matplotlib
如您所见,它已被部分填充。

但我希望此多边形内的所有区域均应填充。

有什么方法呢?

感谢您的任何建议!

更新:答案!!!

其实我刚刚找到了答案。它在the official site of SciPy上:



因此,要做我想做的事,我只需要使用:
plt.fill(points[hull.vertices,0], points[hull.vertices,1], 'k', alpha=0.3)
而不是我的上层代码的最后4行。

可能这个问题/答案会帮助其他人。

最佳答案

其实我刚刚找到了答案。它在SciPy的官方网站上:


plt.fill(points[hull.vertices,0], points[hull.vertices,1], 'k', alpha=0.3)
而不是我的上层代码的最后4行。

可能这个问题/答案会帮助其他人。

关于python - 如何使用matplotlib在Python中填充多边形内的区域?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36250793/

10-12 07:36