2010-04-23 5 views
1

J'essaie de faire un graphique linéaire de base ici, mais je n'arrive pas à comprendre comment ajuster mon axe x.matplotlib: travailler avec la gamme dans l'axe des x

Et voici l'erreur que j'obtiens lorsque j'essaie de régler ma portée.

from pylab import * 

plot (range(0,11),[9,4,5,2,3,5,7,12,2,3],'.-',label='sample1') 
plot (range(0,11),[12,5,33,2,4,5,3,3,22,10],'o-',label='sample2') 
xlabel('x axis') 
ylabel('y axis') 
title('my sample graphs') 
legend(('sample1','sample2')) 
savefig("sampleg.png",dpi=(640/8)) 

show() 


File "C:\Python26\lib\site-packages\matplotlib\axes.py", line 228, in _xy_from_xy 
raise ValueError("x and y must have same first dimension") 
ValueError: x and y must have same first dimension 

Je veux que ma gamme soit une liste de chaînes: [ "12/1/2007", "12/1/2008", "12/1/2009", "12/1/2010" ]

Des suggestions? Honnêtement, j'ai trouvé le code en ligne et essayait de le réécrire pour le comprendre correctement. Je pense que je vais repartir à zéro pour savoir ce que je fais mais j'ai besoin d'aide pour savoir par où commencer.

J'ai posté une autre question qui explique ce que je veux faire ici:

Using PyLab to create a 2D graph from two separate lists

+0

Où sont les dates de vos appels matplotlib? Et peut-être pourriez-vous reformater cela. –

Répondre

3

range(0,11) devrait être range(0,10).

+1

... ou simplement 'range (10)'. –

2

En plus de l'observation de Steve: Si vos points sont toujours une valeur y au même nombre entier x consécutifs, matplotlib rend la plage même implicite.

plot([9,4,5,2,3,5,7,12,2,3],'.-',label='sample1') 
+0

Oui, beaucoup plus facile. –