значения y не совпадают с символами в pyplot - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь нарисовать простой график с ошибкой. Поэтому я использовал функцию plt.errorbar. Но порядок оси X был в алфавитном порядке, но я хотел изменить его, я использовал функцию plt.xticks, чтобы указать расположение значений x. Но в результате xticks изменил порядок, как я планировал, но значения y остались прежними, что сейчас не соответствует значению x.

При запуске я использовал список python для x и y, но я изменил его на массив numpy, но результаты были такими же.

x = ['Andy', 'Red', 'Norton', 'Heywood', 'Tommy', 'DA','Bogs', 'Brooks', 'Skeet']
x = np.array(x)
y = np.array([1.298028801,1.189740519,0.848361823,1.636059322,1.026463944,
              1.319936042,1.539851181,1.527549508,0.979018094])
error = np.array(y)

plt.errorbar(x, y, yerr=1.96*error, fmt='o', capsize=4, color= 'tomato')
plt.xlabel('character', size=15)
plt.ylabel('counts', size=15)

plt.xticks(range(len(x)), x)

plt.show()

res

Я хотел один и тот же порядок x и y, но после того, как я обозначил plt.xticks, он не соответствовал порядку, который изначально

'Andy':1.2980,'Red':1.1897,'Norton':0.8483, ...

1 Ответ

0 голосов
/ 08 января 2019

Использование matplotlib версии 3.0.2:

import numpy as np
import matplotlib.pyplot as plt
x = ['Andy', 'Red', 'Norton', 'Heywood', 'Tommy', 'DA','Bogs', 'Brooks', 'Skeet']
x = np.array(x)
y = [1.298028801,1.189740519,0.848361823,1.636059322,1.026463944,1.319936042,1.539851181,1.527549508,0.979018094]
np.array([1.189740519,0.848361823,1.636059322,1.026463944,1.319936042,1.539851181,1.527549508,0.979018094])
error = np.array(y)

plt.errorbar(x, y, yerr=1.96*error, fmt='o', capsize=4, color= 'tomato')
plt.xlabel('character', size=15)
plt.ylabel('counts', size=15)

# plt.xticks(range(len(x)), x)

plt.show()

ВЫВОД:

out

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