2017-10-13 3 views
0

Traçage valeurs y en pyplot est facile, étant donné une liste de y_values = [0, 1, 4, 9], pyplot trace automatiquement cela en utilisantvaleurs x-PLOT sans y valeurs dans pyplot

plt.plot(y_values) 
plt.show() 

Comme pyplot énumère automatiquement ces utilisant [0,1,2,3]. Cependant, étant donné une liste de x_values, existe-t-il un moyen de tracer automatiquement ces valeurs sans fournir de valeurs y? par exemple. Laisser pyplot les énumérer automatiquement?

J'ai essayé

plt.plot(x=x_values); plt.plot(xdata=x_values) 

Cependant, aucun d'entre eux semblent fonctionner. Bien sûr, une façon serait de retourner les axes, mais y a-t-il un moyen plus simple que j'ai négligé?

+1

Vous pouvez, bien sûr, créer ces valeurs vous y en utilisant 'numpy.arange()' – DavidG

+0

@DavidG Oui, cela fonctionnerait bien sûr, mais il serait raisonnable de supposer que si je n'ai pas à le faire pour 'y_values', je ne devrais pas avoir à le faire pour' x_values'. –

Répondre

1

Les arguments x et y dans pyplot.plot(*args, **kwargs) sont des arguments positionnels. Selon la documentation, par ex.

plot(x, y)  # plot x and y using default line style and color 
plot(x, y, 'bo') # plot x and y using blue circle markers 
plot(y)   # plot y using x as index array 0..N-1 

Maintenant, comment pyplot savoir que si vous spécifiez un seul argument, vous voulez qu'il soit interprété comme l'ordonnée au lieu de la coordonnée? Ce n'est tout simplement pas possible de la façon dont la fonction est écrite.

Une solution pour tracer l'index contre une liste est de fournir l'index comme y argument:

import matplotlib.pyplot as plt 
x_values = [0, 1, 4, 9] 
plt.plot(x_values, range(len(x_values))) 
plt.show()