我想使用 Matplotlib 绘制一组具有半透明面部颜色和不透明(alpha=1)边缘颜色的标记(一次一个)。通过使用适当的 rgba 值在 plot 命令中设置 each 似乎很简单(就像在这个答案中建议的那样),但它不起作用示例代码(从原始帖子更新以更好地说明问题):
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
如您所见,边缘是正确的,纯黑色。但是,当您查看彼此重叠的标记和网格时,您会发现它们不是半透明的。
我在 Windows 7 和 Ubuntu 上使用 Matplotlib 1.2.1 生成了这个结果
有谁知道如何解决这个问题,而不创建两组重叠标记?