2012-09-26 10 views
5

我已经结合pyplot/matplotlib蟒制成的线图:如何制作x坐标字母?

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做到这一点?

回答

9

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

+1

Thanks! 'pyplot.xticks(np.arange(0,26),string.lowercase)'工作! – dangerChihuahua007

5

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

注:,否则你在“Z”错过了,你应该改变你的alphabet = range(0, 25)alphabet = range(26)

enter image description here