图例标记透明度 - Matplotlib
我有一个图表,上面有一些带有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))
只是我不确定这是否是最好的解决办法。