Это не проблема функции панели ошибок, а скорее цветовой цикл по умолчанию (или, в более общем смысле, цикл свойств) matplotlib. Посмотрите эту ссылку для примера.
Вероятно, самый простой способ получить разные цвета для каждой линии - это определить их самостоятельно, используя любое из предопределенных colormaps - Например, jet
:
colors = plt.cm.jet(np.linspace(0, 1, n_columns))
. Это делит диапазон цветовой карты на количество нужных вам цветов. Затем вы можете либо изменить цикл по умолчанию для свойства на вновь созданный, либо просто передать код цвета для каждой строки:
for i, col in enumerate(df_avg_diff.columns):
plt.errorbar(x=df_avg_diff.index, y=df_avg_diff[col], color=colors[i])