如果我打算经常做的话,我会亲自做一个小助手功能。
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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)