首页 > 解决方案 > 如何在matplotlib中设置多边形补丁的边缘颜色

问题描述

我设法将多边形补丁渲染到 matplotlib 画布上。

下面的代码node_coods是一个包含多边形顶点的 Nx2 numpy 数组。

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

polygon = Polygon(node_coods, closed=True, edgecolor='r')
patches = [polygon]
p = PatchCollection(patches, cmap=mpl.cm.jet, alpha=0.4)
ax.add_collection(p)

目前我的情节看起来像这样,请注意它没有边缘颜色,尽管传递了手册中给出的参数。如何设置多边形补丁的边缘颜色?我想将其设置为红色,(但我想稍后将其调整为任何 RGB 值)

在此处输入图像描述

标签: pythonmatplotlib

解决方案


既然你这样做了

p = PatchCollection(patches,  alpha=0.4)

根据文档,edgecolors默认为None,默认设置会覆盖它 matplotlib.rcParams,这是透明的。所以要么这样做:

p = PatchCollection(patches, edgecolor='r', alpha=0.4)
ax.add_collection(p)

这使

在此处输入图像描述

或者只是使用add_patch

polygon = Polygon(node_coods, closed=True, edgecolor='r')
# patches = [polygon]
# p = PatchCollection(patches,  alpha=0.4)

fig, ax = plt.subplots()
ax.add_patch(polygon)

这使:

在此处输入图像描述


推荐阅读