小编Jos*_*bal的帖子

如何消除相邻 matplotlib 补丁之间的间隙

我正在尝试绘制有限元数据的集合,并使用彩色补丁来表示每个元素中的值。

不幸的是,当我绘制补丁时,相邻补丁之间存在很小的间隙。

我在下面创建了一个示例脚本来描述该问题。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
from matplotlib.collections import PatchCollection

nodes = [[0.1, 0.1],
        [0.25, 0.1],
        [0.75, 0.9],
        [0.1, 0.9],
        [0.9, 0.1],
        [0.9, 0.9]]
        
elems =[[0,1, 2, 3],
        [1, 4, 5, 2]]

patches = []
for elem in elems:
    xy = np.array([nodes[i] for i in elem])
    elem = mpatches.Polygon(xy, closed=True, snap=False, antialiased=True)
    patches.append(elem)

col = PatchCollection(patches)

fig, ax = plt.subplots(1, 1)

ax.add_collection(col)
plt.show()
Run Code Online (Sandbox Code Playgroud)

这会产生以下带有不需要的间隙的图。调整绘图窗口的形状会改变间隙的外观。

目前我的解决方法是设置 col.set_edgecolor("face")` 并包含一个小的边缘宽度。然而,当存在一系列不同的补丁大小时,很难设置边缘来减少伪影。

编辑:正如 @tdy 指出的那样,dpi …

python matplotlib

7
推荐指数
1
解决办法
486
查看次数

标签 统计

matplotlib ×1

python ×1