在matplotlib中legend的创建只能是一个,在这篇文章中将讲述如何在一张figure中创建两个legend

传统的创建爱方法最后一个legend会覆盖前面的legend并且只会显示一个legend

本文章产考matplotlib英文手册,如有问题欢迎在评论栏提出

代码:

import matplotlib.pyplot as plt

line1, = plt.plot([1,2,3],label = "text1",linestyle = '--')
line2, = plt.plot([3,2,1],label = "text2",linewidth = 4)

#创建一个图标
first_legend = plt.legend(handles = [line1],loc = 1)
ax = plt.gca().add_artist(first_legend)

plt.legend(handles = [line2],loc = 4)

plt.show()

在代码中的gca()返回axes,就是返回figure对象,add_artist()是在原有的figure上添加内容,在此处添加的是一个legend
笔者也试过类似添加第二个legend方式添加第一个legend,但是第一个legend无法显示