我有一个带有rgba点的情节,当我向他们展示传奇时,我得到了带有alpha值的标记传奇。如何以完全不透明的方式显示它们?
简化,这是我绘制点并显示图例的方式:
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)
这就是我得到的:
可以看出,图例标记有点透明。如何以完全不透明的方式显示它们?
我尝试了this方法,这就是我得到的(根本没有 x 标记):
当我更改color=='white
参数时,我在标记上划了一条线。
提前谢谢。
答案 0 :(得分: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))
不知道这是否是最佳解决方案。