<p>我添加了一些代码来构建来自<a href="https://stackoverflow.com/users/2029132/gabra">https://stackoverflow.com/users/2029132/gabra</a>的答案和来自<a href="https://stackoverflow.com/users/5946578/brady-forcier">https://stackoverflow.com/users/5946578/brady-forcier</a>的注释。在这里,我通过</em>a'for'循环手动向图例<em>添加元素。</p>
<p>首先,我创建了一本字典,里面有我的传奇名字和想要的颜色。我实际上是在加载数据时这样做的,但这里我只是明确定义:</p>
<pre><code>import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
legend_dict = { 'data1' : 'green', 'data2' : 'red', 'data3' : 'blue' }
</code></pre>
<p>然后我循环遍历字典,并为每个条目定义一个补丁并附加到一个列表“patch list”。然后我用这个列表来创建我的传奇。</p>
<pre><code>patchList = []
for key in legend_dict:
data_key = mpatches.Patch(color=legend_dict[key], label=key)
patchList.append(data_key)
plt.legend(handles=patchList)
plt.savefig('legend.png', bbox_inches='tight')
</code></pre>
<p>这是我的输出:
<a href="https://i.stack.imgur.com/CgYxI.png" rel="noreferrer"><img src="https://i.stack.imgur.com/CgYxI.png" alt="legend example"/></a></p>
<p>我不担心图例条目是按特定顺序排列的,但是您可以通过</p>
<pre><code>plt.legend(handles=sorted(patchList))
</code></pre>
<p>这是我的第一个回答,因此,对于任何错误/失礼,请提前道歉。</p>