Cela devrait être facile mais je viens juste de commencer à jouer avec matplotlib et python. Je peux faire une ligne ou un nuage de points mais je ne suis pas sûr de savoir comment faire une simple étape. Toute aide est très appréciée.
x = 1,2,3,4
y = 0.002871972681775004, 0.00514787917410944, 0.00863476098280219, 0.012003316194034325
Il semble que vous souhaitiez step
.
Par exemple.
import matplotlib.pyplot as plt
x = [1,2,3,4]
y = [0.002871972681775004, 0.00514787917410944,
0.00863476098280219, 0.012003316194034325]
plt.step(x, y)
plt.show()
Si vous avez des points de données non uniformément espacés, vous pouvez utiliser l'argument drawstyle
keyword pour plot
:
x = [1,2.5,3.5,4]
y = [0.002871972681775004, 0.00514787917410944,
0.00863476098280219, 0.012003316194034325]
plt.plot(x, y, drawstyle='steps-pre')
steps-mid
et steps-post
sont également disponibles.
Tracez simplement deux lignes, une en y = 0 et une en y = 1, coupant à la variable x
votre fonction de pas est pour?
par exemple. si vous voulez passer de 0 à 1 à x=2.3
et tracer de x=0
à x=5
:
import matplotlib.pyplot as plt
# _
# if you want the vertical line _|
plt.plot([0,2.3,2.3,5],[0,0,1,1])
#
# OR:
# _
# if you don't want the vertical line _
#plt.plot([0,2.3],[0,0],[2.3,5],[1,1])
# now change the y axis so we can actually see the line
plt.ylim(-0.1,1.1)
plt.show()
Je pense que vous voulez la méthode de calcul de pylab.bar(x,y,width=1)
ou également pyplot
. sinon, consultez la gallery pour les nombreux styles de tracé que vous pouvez utiliser. Chaque image est livrée avec un exemple de code vous expliquant comment utiliser matplotlib.
Dans le cas où quelqu'un voudrait simplement améliorer certaines données plutôt que de les représenter:
def get_x_y_steps(x, y, where="post"):
if where == "post":
x_step = [x[0]] + [_x for tup in Zip(x, x)[1:] for _x in tup]
y_step = [_y for tup in Zip(y, y)[:-1] for _y in tup] + [y[-1]]
Elif where == "pre":
x_step = [_x for tup in Zip(x, x)[:-1] for _x in tup] + [x[-1]]
y_step = [y[0]] + [_y for tup in Zip(y, y)[1:] for _y in tup]
return x_step, y_step