我可以更改散点图图例中项目的不透明度
import matplotlib.pyplot as plt
# note the alpha value vvvvvvvvvv
plt.scatter(range(10), range(10), alpha=0.15, label='Mount Resegone')
plt.scatter(range(10), [0]*10, alpha=0.15, label='Rimini Beach')
plt.gca().get_legend_handles_labels()[0][0].set_alpha(1.0)
plt.legend()
plt.show()
字符串
但这样做我也改变了散点图中每个点的不透明度。
我猜有一个单一的补丁示例,纠正我,如果我错了,但我的问题是改变补丁的传说离开单独的补丁在散点图。
的数据
增编**
最初建议的解决方案(handle._legmarker.set_alpha(1)
)在最近的Matplotlib中不起作用,引发AttributeError
'PathCollection' object has no attribute '_legmarker'
型
幸运的是,它甚至更容易获得预期的行为
plt.scatter(range(10), range(10), alpha=0.15, label='Mount Resegone')
plt.scatter(range(10), [0]*10, alpha=0.15, label='Rimini Beach')
plt.legend().legendHandles[0].set_alpha(1.0)
型
的
1条答案
按热度按时间nr7wwzry1#
编辑:您可以只做:
字符串
来源:Set legend symbol opacity
更新:有更简单的方法!首先,在>创建图例时将其分配给变量:
型
然后:
型
或者,如果上面的方法不起作用(你可能使用的是旧版本的matplotlib):
型
使您的标记分别对于plt.plot或plt.scatter不透明。
请注意,在plt.plot上简单地使用lh.set_alpha(1)将使图例中的线而不是标记不透明。您应该能够使这两种可能性适用于其他打印类型。