6

我用 pyplot/matplotlib 在 python 中制作了一个折线图:

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 轴上,它当前按数字缩放。但是,我希望用字母(a、b、c、d)而不是说 0、5、10 来标记 x 轴上的增量...具体来说,我希望字母 'a' 映射到 0,' b' 映射到 1 等。

我如何让 pyplot 做到这一点?

4

2 回答 2

11

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

于 2012-09-26T05:42:50.043 回答
6

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

注意: 你应该改变你的alphabet = range(0, 25)alphabet = range(26)因为否则你会错过'z'。

在此处输入图像描述

于 2012-09-26T05:47:34.053 回答