#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 вы должны назвать их, если хотите изменить их порядок. (На мой взгляд, вы всегда должны называть их)