当alpha不是1时,Pyplot pcolormesh会混淆

时间:2013-12-19 10:14:52

标签: python matplotlib

我对pyplot的绘图能力有一些困难。我选择了我自己的色彩图

n = 6
map = matplotlib.cm.get_cmap('Dark2')
cmap = colors.ListedColormap([(0,0,0,0)] + [[map(i * 1.0 / n)[j] for j in range(3)] + [0.2] for i in range(1, n + 1)])

这基本上只是Dark2色图,离散为n(在我的情况下为6)值,零值映射到纯白色。但是,主要区别在于,我的自定义色彩映射的alpha值设置为0.2,而不是默认设置为1

问题在于,当我使用此方法绘制内容时,例如

plt.pcolormesh(np.random.rand(10,10), cmap = cmapInv)

结果是这样的:

Result

这看起来不错,但你可以清楚地看到每个方框周围都有一个非常薄的边框,其颜色与方框相同,但alpha设置为1

编辑:正如评论中所建议的那样,这些边框的原因可能是框之间的重叠。

有没有办法清理它?

1 个答案:

答案 0 :(得分:7)

在此期间,作为一个小型解决方法,我发现您可以通过弄乱edgecolorlinewidth属性来使图像更接近您想要的图像。例如,使用以下输入pcolormesh

    plt.pcolormesh(np.random.rand(10,10), cmap = cmapInv, edgecolor=(1.0, 1.0, 1.0, 0.3), linewidth=0.0015625)

输出以下图片:

enter image description here