做图时图例每每都会出现一个图例框内,若是须要不一样类型的图例分别显示,好比显示两个图例。html
基本上,出现两个图例的话,须要调用两次 legend
。第一次调用,你须要将图例保存到一个变量中,而后保存下来。第二次调用清除以前建立的第一个的图例,以后你能够经过 Axes.add_artist
函数手动将第一个图例从新添加回来。dom
如下为一个简单的例子进行说明:ide
# -*- coding: utf-8 -*- import matplotlib.pyplot as plt import numpy as np x = np.random.uniform(-1, 1, 4) y = np.random.uniform(-1, 1, 4) p1, = plt.plot([1,2,3]) p2, = plt.plot([3,2,1]) l1 = plt.legend([p2, p1], ["line 2", "line 1"], loc='upper left') p3 = plt.scatter(x[0:2], y[0:2], marker = 'D', color='r') p4 = plt.scatter(x[2:], y[2:], marker = 'D', color='g') # This removes l1 from the axes. plt.legend([p3, p4], ['label', 'label1'], loc='lower right', scatterpoints=1) # Add l1 as a separate artist to the axes plt.gca().add_artist(l1)
图例效果以下:函数
若是想移动图例在图形中的位置(好比将图例移到数据区域的外侧),请参考官方文档。ui