Небольшое отклонение от некоторых других участников. Список order
должен иметь ту же длину, что и количество элементов легенды, и задает новый порядок вручную.
handles, labels = plt.gca().get_legend_handles_labels()
order = [0,2,1]
plt.legend([handles[idx] for idx in order],[labels[idx] for idx in order])