y值与pyplot中的xticks不匹配

时间:2019-01-08 12:30:38

标签: python matplotlib

我正在尝试绘制带有错误栏的简单图表。因此,我使用了y函数。但是x轴顺序是字母顺序,但是我想更改它,我使用plt.errorbar函数来指定x值的位置。但是结果是plt.xticks改变了我想要的顺序,但是y值保持不变,现在不匹配x值。

开始时,我将python列表用于x和y,但我将其更改为xticks数组,但结果相同。

numpy

res

我想要x和y的顺序相同,但是在我指定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() 之后,它与该顺序不匹配,该顺序最初是

plt.xticks

1 个答案:

答案 0 :(得分:0)

使用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