representatives = [[[-100, 40], [-50, 20], [0, 0], [75, -5], [100, 5]], [[
    -60, 80], [0, 85], [100, 90]], [[-60, 15], [-50, 90]], [[-2, -2], [5, 95]]]
fig = plt.figure()
axes = fig.add_axes([0.1, 0.1, 0.8, 0.8])
axes.set_xlabel('x (m)')
axes.set_ylabel('y (m)')
for i, representative in enumerate(representatives):
    axes.plot([e[0] for e in representative], [e[1] for e in representative
        ], color='b', label='Representatives')
handles, labels = axes.get_legend_handles_labels()
i = arange(len(labels))
filter = array([])
unique_labels = tolist(set(labels))
for ul in unique_labels:
    filter = np.append(filter, [i[array(labels) == ul][0]])
handles = [handles[int(f)] for f in filter]
labels = [labels[int(f)] for f in filter]
axes.legend(handles, labels)
Duplicate items in legend in matplotlib?