7

matplotlib を使用して複数の線または点をプロットすると、ラベルが繰り返される状況が発生することがあります。例えば:

for i in range(5):
    Y1=boatarrays[i]
    Y2=cararrays[i]
    ax.plot(X,Y1,color='r',label='Boats')
    ax.plot(X,Y2,color='b',label='Cars')

持っているだけで、一度だけ現れる方法'Boats''Cars'

4

2 に答える 2

8
    import matplotlib.pyplot as plt
    #Prepare fig
    fig = plt.figure()
    ax  = fig.add_subplot(111)
    for i in range(5):
        Y1=boatarrays[i]
        Y2=carsarrays[i]
        ax.plot(X,Y1,color='r',label='Boats')
        ax.plot(X,Y2,color='b',label='Cars')
    #Fix legend
    hand, labl = ax.get_legend_handles_labels()
    handout=[]
    lablout=[]
    for h,l in zip(hand,labl):
       if l not in lablout:
            lablout.append(l)
            handout.append(h)
    fig.legend(handout, lablout)
于 2015-10-29T21:07:49.980 に答える