我有两个独立的数据集,z_p和z_g,我想在同一轴上放置两个tricontourf()实例,每个实例对应一个数据集的轮廓。下面是我所做的伪代码:
cmap_p = plt.get_cmap('Reds')
norm_p = BoundaryNorm(levels, ncolors=cmap_p.N, clip=True)
cmap_g = plt.get_cmap('Blues')
norm_g = BoundaryNorm(levels, ncolors=cmap_g.N, clip=True)
lev = range(lower_level, upper_level+1)
obj_g = ax.tricontourf(x, y, z_g, cmap=cmap_g, norm=norm_g,
levels=lev, extent=[x0, y0, x1, y1], zorder=2)
obj_p = ax.tricontourf(x, y, z_p, cmap=cmap_p, norm=norm_p,
levels=lev, extent=[x0, y0, x1, y1], zorder=3)
输出数字如下。显然,只有对tricontourf()的第二次调用才能有效地工作,因为图的左侧有一个红色补丁。如果我注释掉调用obj_p,那么我会在图的右侧看到一个蓝色的蓝色补丁。但是,对tricontourf()的后续两次调用不能同时工作。
如果有人告诉我如何在同一轴上显示两个轮廓,我将不胜感激?
答案 0 :(得分:0)
你的第二个情节是用不透明的白色遮盖第一个情节,这就是为什么当你没有绘制第二个情节时你会看到第一个情节。如果要同时查看两者,可以设置alpha关键字:
alpha=0.5
使地块足够透明以便透视。或者,如果您知道重叠区域在哪里并希望简单地将其掩盖在第二个图中,那么this有一个关于屏蔽调用tricontourf的问题的答案。