В следующем примере цвет в легенде для data_3 не будет выглядеть так же, как цвет, установленный в plt.errorbar ([..], color = 'red').Задушить это относится только к определенным символам и цветовым комбинациям.Например, красный квадрат будет выглядеть как черный квадрат в легенде, а красный круг будет отображаться правильно в легенде.Это кажется проблемой только тогда, когда легенда расположена за пределами фигуры.Вот работающий пример: импорт matplotlib.pyplot как plt импорт matplotlib импорт seaborn как sns sns.set () # установить стиль графиков для seaborn
matplotlib.rcParams['legend.handlelength'] = 0
matplotlib.rcParams['legend.markerscale'] = 1
labels = ['data_1','data_2','data_3','data_4']
symbols = ['o','D','s','D']
fill_style = ['none','full','none','full']
colours = ['MediumPurple','Maroon','red','yellowGreen']
x=range(10)
y=range(10)
for i in range(len(symbols)):
plt.errorbar(x,[a+i*2 for a in y],elinewidth=1,color=colours[i],fmt=symbols[i],label=labels[i],ms=4,fillstyle=fill_style[i],markeredgewidth=1.75,markeredgecolor=colours[i])
plt.legend(loc='center left',bbox_to_anchor=(1, 0.5))