图例标记透明度 - Matplotlib

1 投票
1 回答
942 浏览
提问于 2025-04-18 13:51

我有一个图表,上面有一些带有rgba颜色值的点。当我显示这些点的图例时,图例中的标记却带有透明度值。我想知道怎么才能让它们完全不透明。

简单来说,这就是我绘制这些点并显示图例的方式:

x = np.arange(10)
y = np.arange(10)

alphas = np.linspace(0.1, 1, 10)
rgba_colors = np.zeros((10,4))
rgba_colors[:,0] = 1.0
rgba_colors[:, 3] = alphas

plt.scatter(x, y, color=rgba_colors, marker='x', facecolors='none', linewidth=2, label='Min Points')

plt.legend(loc='center left', scatterpoints = 1)

这是我得到的结果:

在这里输入图片描述

从图中可以看到,图例中的标记有点透明。我该怎么做才能让它们完全不透明呢?

我试过这个方法,但结果是这样的(根本没有x标记):

在这里输入图片描述

而当我改变color=='white这个参数时,标记上面会出现一条线。

在这里输入图片描述

谢谢大家的帮助。

1 个回答

2

我用这段代码解决了问题:

marker_min = plt.Line2D((0, 0), (0, 0), markeredgecolor=(0.5, 0.0, 0.0), markerfacecolor='none', linestyle='', marker='x', markeredgewidth=2, markersize=5)
marker_max = plt.Line2D((0, 0), (0, 0), markeredgecolor=(0.0, 0.5, 0.0), markerfacecolor='none', linestyle='', marker='o', markeredgewidth=2, markersize=5)
plt.legend([marker_min, marker_max], ['Min Points', 'Max Points'], numpoints=1, loc='center left', bbox_to_anchor=(1, 0.5))

在这里输入图片描述

只是我不确定这是否是最好的解决办法。

撰写回答