Python 填充多边形
Python fill polygon
是否有任何Python函数(matplotlib或mayavi)可以在Matlab中执行与"fill"相同的任务?我需要的是,给定一个由一组点 x、y 和每个点的颜色向量 c 定义的多边形,fill(x, y, c)
将绘制由 (x, y) 定义的多边形,颜色为 c[i]对于每个 (x[i], y[i]).
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颜色代码作为值。
如果你有一组多边形,并且每个多边形都需要不同的颜色,你可以使用路径集合:
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)
是否有任何Python函数(matplotlib或mayavi)可以在Matlab中执行与"fill"相同的任务?我需要的是,给定一个由一组点 x、y 和每个点的颜色向量 c 定义的多边形,fill(x, y, c)
将绘制由 (x, y) 定义的多边形,颜色为 c[i]对于每个 (x[i], y[i]).
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颜色代码作为值。
如果你有一组多边形,并且每个多边形都需要不同的颜色,你可以使用路径集合:
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)