Python:Matplotlib面片和等高线图
使用PatchCollection时,是否有办法使圆形的填充透明?我画了一个圆,并尝试将facecolor设置为“无”,但它覆盖了绘制在其顶部的等高线图。我想看看圆圈的轮廓,后面的轮廓仍然可见 使用mplstereonet-0.2第三方软件绘制立体网。以下是脚本中打印图像的部分:Python:Matplotlib面片和等高线图,python,matplotlib,Python,Matplotlib,使用PatchCollection时,是否有办法使圆形的填充透明?我画了一个圆,并尝试将facecolor设置为“无”,但它覆盖了绘制在其顶部的等高线图。我想看看圆圈的轮廓,后面的轮廓仍然可见 使用mplstereonet-0.2第三方软件绘制立体网。以下是脚本中打印图像的部分: hold(True) fig, ax = plt.subplots(subplot_kw = dict(projection = 'stereonet')) # Schmidt by default cax =
hold(True)
fig, ax = plt.subplots(subplot_kw = dict(projection = 'stereonet')) # Schmidt by default
cax = ax.density_contourf(strike, dip, measurement = 'poles')
ax.pole(strike, dip, 'k^', markersize = 3)
ax.grid(True)
patches = []
circle = Circle((0, 0), 0.5, facecolor = 'none', fill = False)
patches.append(circle)
p = PatchCollection(patches)
ax.add_collection(p)
cbar = fig.colorbar(cax, cmap = cm)
cbar.set_clim(0, 25)
我解决了这个问题,但感谢所有可能对此进行调查的人 解决方案:
p = PatchCollection(patches, match_original = True)
这将使其能够在形状后面看到轮廓
我正要回答。我的意见是,如果你只画一个圆,避免整个拼图,直接加上:ax.add_艺术家(圆)Nice。我打算建议使用
ax.add_patch(circle)
,这很好(如果你只有一个补丁,就不需要使用补丁集合)。不过,您应该在问题中提供一个最简单的工作示例。仅供参考,您还可以在创建补丁集合时指定facecolor='none'
(或使用p.set\u facecolor
)。创建集合时,默认设置与原始修补程序不匹配的原因是集合通常用于加速一组几乎相同的艺术家的绘制,或将某些属性(如facecolor)映射到另一个标量(例如,color byz
)。(另一方面,我甚至不知道存在match_original
选项。这很方便!)正如其他人提到的,对于单个圆,直接添加它更容易。祝你好运