Python填充多边形

时间:2019-08-19 19:16:48

标签: python python-3.x matplotlib mayavi.mlab

在Matlab中是否有任何Python函数(matplotlib或mayavi)可以执行与“ fill”相同的任务?我需要的是,给定由一组点x,y和每个点的颜色矢量c定义的多边形,fill(x, y, c)将绘制由(x,y)定义的多边形,其颜色为c [i]每个(x [i],y [i])。

1 个答案:

答案 0 :(得分:1)

matplotlib的直线度要比matlab少,您需要向轴添加polygon

from matplotlib.patches import Polygon

fig, ax = plt.subplots()
N = 5
polygon = Polygon(np.random.rand(N, 2), True, facecolor='r')
ax.add_patch(polygon)

注意:facecolor控制多边形的颜色,并接受字符串,RGBA或html颜色代码作为值。

enter image description here

如果您有一组Polygon,并且每个多边形需要使用不同的颜色,则可以使用pathcollection:

from matplotlib.patches import Polygon
from matplotlib.collections import PatchCollection

fig, ax = plt.subplots()
N = 5
val = np.random.rand(N, 2, 3)
patches = [Polygon(val[:, :, i], True) for i in range(val.shape[-1])]
p = PatchCollection(patches, alpha=0.4)
p.set_array(np.random.rand(3))  # assign colors
ax.add_collection(p)
fig.colorbar(p)

enter image description here