2012-09-26 12 views
5

he hecho un gráfico de líneas en Python con pyplot/matplotlib:¿Cómo hago las letras de las coordenadas 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() 

En mi eje x, TI actuales escalas de números. Sin embargo, quiero que los incrementos en el eje x se etiqueten con letras (a, b, c, d) en lugar de decir 0, 5, 10 ... Específicamente, quiero que la letra "a" se asigne a 0, " b 'para asignar a 1, etc.

¿Cómo hago para que pyplot haga eso?

Respuesta

9

Utilice la función xticks. Si lo hace pyplot.xticks([0, 1, 2, 3], ['a', 'b', 'c', 'd']), tendrá marcas de eje en 0, 1, 2 y 3, y se etiquetarán a, b, c y d. También puede usar np.arange para crear rápidamente el rango de números que desea.

+1

¡Gracias! 'pyplot.xticks (np.arange (0, 26), string.lowercase)' funciona! – dangerChihuahua007

5

He utilizado plt.xticks(range(26), [chr(97 + x) for x in xrange(26)]) a continuación.

NOTA: debe cambiar su alphabet = range(0, 25)-alphabet = range(26) porque de lo contrario es falta de 'z'.

enter image description here

Cuestiones relacionadas