ValueError в matplotlib даже при том, что длины строк одинаковы - PullRequest
0 голосов
/ 13 октября 2018

Мои массивы выглядят следующим образом:

x = ['2.000000', '2.100000', '2.200000', '2.300000', '2.400000', '2.500000']
y = ['-0.876484', '-0.841230', '-0.776523', '-0.724883', '-0.656426', '-0.595879']
e = ['0.000655', '0.000851', '0.001311', '0.001642', '0.001702', '0.001709']

Мой код для построения графиков с ошибками выглядит следующим образом:

import matplotlib.pyplot as plt

x = ['2.000000', '2.100000', '2.200000', '2.300000', '2.400000', '2.500000']
y = ['-0.876484', '-0.841230', '-0.776523', '-0.724883', '-0.656426', '-0.595879']
e = ['0.000655', '0.000851', '0.001311', '0.001642', '0.001702', '0.001709']
plt.errorbar(x, y, yerr=e, fmt='o')
plt.show()

Я продолжаю получать сообщение ValueError:

ValueError: err must be a scalar, the same dimensions as x, or 2xN.

Я не могу понять, почему это так, поскольку размеры всех моих массивов равны.

1 Ответ

0 голосов
/ 13 октября 2018

Вы строите строки, поэтому matplotlib не может обрабатывать форму e.Измените ваши данные на числовые, и это работает: (ваш e слишком мал, поэтому полосы ошибок не отображаются)

x = [2.000000, 2.100000, 2.200000, 2.300000, 2.400000, 2.500000]
y = [-0.876484, -0.841230, -0.776523, -0.724883, -0.656426, 0.595879]
e = [0.000655, 0.000851, 0.001311, 0.001642, 0.001702, 0.001709]

plt.errorbar(x, y, yerr=e, fmt='o')
plt.show()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...