Python — matplotlib, pyplot, строки ошибок x и y не в ту сторону?

#python #matplotlib

#python #matplotlib

Вопрос:

Меня смущает порядок аргументов в plt.errorbar

У меня есть следующий код в моем скрипте на Python

 plt.errorbar(0.0, 1.0, 0.1, 10.0)
  

Я бы предположил, что порядок аргументов таков: x_data, y_data, x_error, y_error

Это согласуется с:http://matplotlib.org/1.2.1/examples/pylab_examples/errorbar_demo.html

Однако, когда я запускаю этот код, я получаю следующий вывод:

Скриншот

Очевидно, что x = 0.0, y = 1.0, x_err = 10.0, y_err = 0.1

Таким образом, аргументы x_error и y_error меняются местами!

Мой вопрос в том, почему? Является ли документация неверной? Я так запутался!

Ответ №1:

Если вы не используете ключевые слова, порядок аргументов будет x, y, yerr, xerr .

Из документов:

Подпись вызова:

 errorbar(x, y, yerr=None, xerr=None,
     fmt='', ecolor=None, elinewidth=None, capsize=None,
     barsabove=False, lolims=False, uplims=False,
     xlolims=False, xuplims=False, errorevery=1,
     capthick=None)
  

Чтобы избежать этого, вы можете использовать ключевые слова, чтобы убедиться, что вы присваиваете правильное значение правильному аргументу; тогда порядок не имеет значения. Обратите внимание, что пример, на который вы ссылались, делает то же самое.

Итак, для вашего примера вы хотели бы использовать:

 plt.errorbar(0.0, 1.0, xerr=0.1, yerr=10.0)
  

Комментарии:

1. Спасибо — я не знал, что могу изменить порядок аргументов в Python!

2. @user3728501 вы должны назвать их, если хотите изменить их порядок. (На мой взгляд, вы всегда должны называть их)