如何制作x坐标字母?

时间:2012-09-26 05:39:48

标签: python matplotlib

我在python中使用pyplot / matplotlib创建了一个折线图:

import matplotlib.pyplot as plt
import math
import numpy as np

alphabet = range(0, 25)
firstLine = [letter + 65 for letter in alphabet]
secondLine = [letter + 97 for letter in alphabet]

plt.plot(alphabet, firstLine, '-b', label='ASCII value of capital.')
plt.plot(alphabet, secondLine, '--g', label='ASCII value of lowercase.')
plt.xlabel('Letter in Alphabet')
plt.ylabel('ASCII Value')
plt.title('ASCII value vs. Letter')
plt.legend()
plt.show()

在我的x轴上,它的电流按数字缩放。但是,我希望x轴上的增量用字母(a,b,c,d)标记,而不是说0,5,10 ...具体来说,我希望字母'a'映射到0,' b'映射到1,等等。

如何让pyplot这样做?

2 个答案:

答案 0 :(得分:10)

使用xticks功能。如果你做pyplot.xticks([0, 1, 2, 3], ['a', 'b', 'c', 'd'])那么它的轴标记为0,1,2和3,它们将被标记为a,b,c和d。您还可以使用np.arange快速创建所需的数字范围。

答案 1 :(得分:6)

我在下面使用了plt.xticks(range(26), [chr(97 + x) for x in xrange(26)])

注意: 您应该将alphabet = range(0, 25)更改为alphabet = range(26),否则您错过了'z'。

enter image description here