Matplotlib中的透明标记面颜色

2024-10-17 08:27:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Matplotlib绘制一组标记(一次一个),这些标记具有半透明的面颜色和不透明(alpha=1)的边缘颜色。通过在plot命令中使用适当的rgba值(就像thisanswer中建议的那样),这看起来很简单,但它不起作用 示例代码(从原始帖子更新以更好地说明问题):

N = 48
xys = np.random.rand(N,2)
markers = []
fig = plt.figure()
ax = fig.add_subplot(111)
for i in range(N):
    m = ax.plot(
        xys[i,0], xys[i,1],
        linestyle='None', marker='o', markersize=20,
        markeredgewidth=4, markeredgecolor=(0, 0, 0, 1.0),
        markerfacecolor=(1, 0, 0.2, 0.1),
    )[0]
ax.grid()
ax.set_axisbelow(True)
fig.savefig('scratch_fig.png', dpi=300)

这给了我这样一个情节:http://imgur.com/pcCQlSV

如你所见,边缘是正确的,纯黑。但是,当你看到相互重叠的标记和网格时,你会发现它们不是半透明的。在

我在windows7和Ubuntu上都使用matplotlib1.2.1生成了这个结果

有人知道如何在不创建两组重叠标记的情况下解决这个问题吗?在


Tags: 标记命令alphaplotmatplotlib颜色fig绘制