放大和设置图例框中标记的alpha
值(回到1.0)的最方便方法是什么?我也很喜欢大的彩色框。
import matplotlib.pyplot as plt
import numpy as np
n = 100000
s1 = np.random.normal(0, 0.05, n)
s2 = np.random.normal(0, 0.08, n)
ys = np.linspace(0, 1, n)
plt.plot(s1, ys, ',', label='data1', alpha=0.1)
plt.plot(s2, ys, ',', label='data2', alpha=0.1)
plt.legend(bbox_to_anchor=(1.005, 1), loc=2, borderaxespad=0.)
5条答案
按热度按时间fruv7luv1#
对于大小,您可以在调用图例时包含关键字
markerscale=##
,这将使标记更大(或更小)。tv6aics12#
https://izziswift.com/set-legend-symbol-opacity-with-matplotlib/
zzwlnbp83#
我们可以在
.legend()
中使用handler_map
选项来定义一个自定义函数来更新图例中所有Line2D示例的alpha或标记。这种方法的优点是它可以在第一次获得正确的图例标记,之后不需要修改它们,并且修复了原始图例标记有时仍然可以看到的问题。这个方法使用了
matplotlib.legend_handler
模块中的HandlerLine2D
。我不知道有没有一种方法可以不添加额外的导入来完成这个任务。一个完整的脚本看起来像这样:
如果你命名为
legend
,你就可以遍历其中包含的行。例如:注意,您还必须再次设置标记。我建议在这里将其设置为
.
而不是,
,以使其更明显2mbi3lxu4#
对我来说,诀窍是使用正确的属性:
holgip5t5#
另一个选择:而不是改变你的图例的标记,你可以做一个自定义图例(ref the matplotlib legend tutorial)