2012-09-26 14 views
5

Ho fatto un grafico lineare in pitone con pyplot/matplotlib:Come si creano le lettere delle x-coordinate?

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() 

Sul mio asse x, it scale di corrente di numeri. Tuttavia, voglio che gli incrementi sull'asse x siano etichettati con lettere (a, b, c, d) invece di dire 0, 5, 10 ... In particolare, voglio che la lettera 'a' sia mappata a 0, ' b 'per mappare a 1, ecc.

Come faccio a fare pyplot?

risposta

9

Utilizzare la funzione xticks. Se si esegue pyplot.xticks([0, 1, 2, 3], ['a', 'b', 'c', 'd']), allora avrà segni di asse su 0, 1, 2 e 3 e saranno etichettati come a, b, c e d. È inoltre possibile utilizzare np.arange per creare rapidamente l'intervallo di numeri desiderato.

+1

Grazie! 'pyplot.xticks (np.arange (0, 26), string.lowercase)' funziona! – dangerChihuahua007

5

Ho usato plt.xticks(range(26), [chr(97 + x) for x in xrange(26)]) qui sotto.

NOTA: si dovrebbe cambiare il vostro alphabet = range(0, 25)-alphabet = range(26) perché altrimenti si sta perdendo su 'z'.

enter image description here

Problemi correlati