pyplot在图例中合并多个线标签

pyplot在图例中合并多个线标签,第1张

pyplot在图例中合并多个线标签

如果我打算经常做的话,我会亲自做一个小助手功能。

from matplotlib import pyplotimport numpya = numpy.array([[ 3.57,  1.76,  7.42,  6.52],      [ 1.57,  1.2 ,  3.02,  6.88],      [ 2.23,  4.86,  5.12,  2.81],      [ 4.48,  1.38,  2.14,  0.86],      [ 6.68,  1.72,  8.56,  3.23]])def plotCollection(ax, xs, ys, *args, **kwargs):  ax.plot(xs,ys, *args, **kwargs)  if "label" in kwargs.keys():    #remove duplicates    handles, labels = pyplot.gca().get_legend_handles_labels()    newLabels, newHandles = [], []    for handle, label in zip(handles, labels):      if label not in newLabels:        newLabels.append(label)        newHandles.append(handle)    pyplot.legend(newHandles, newLabels)ax = pyplot.subplot(1,1,1)  plotCollection(ax, a[:,::2].T, a[:, 1::2].T, 'r', label='data_a')plotCollection(ax, a[:,1::2].T, a[:, ::2].T, 'b', label='data_b')pyplot.show()

从图例的

handles
labels
中删除重复项(比您拥有的重复项更简单)的方法(也是IMO更清晰的方法)是:

handles, labels = pyplot.gca().get_legend_handles_labels()newLabels, newHandles = [], []for handle, label in zip(handles, labels):  if label not in newLabels:    newLabels.append(label)    newHandles.append(handle)pyplot.legend(newHandles, newLabels)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5649162.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存