So I basically have some data which is like this: x = [0, 5, 12, 17] and y = [0, 1, 0, 0] (I mean those are really long lists). Now I would like to plot a graph which has value of 0 from 0 to 5, then from 5 to 12 -> 1, and then from 12 to 17 the value of 0. Now I can do this by generating an arrays like this:
x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17] and y = [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, ...., 0] and just plt.plot(x,y). But for large arrays this is not efficient I guess, so I would like to ask if there is a matplotlib method to print specified value or function formula within a specified range? (like sin(x) from 0 to 5 and something else further)
Add a comment
|
1 Answer
Plotting the example data can be done using plt.step. In this case, the argument where must be where="post".
import matplotlib.pyplot as plt
x = [0, 5, 12, 17]
y = [0, 1, 0, 0]
plt.step(x, y, where='post', label='step')
plt.xticks(x)
plt.show()
2 Comments
ImportanceOfBeingErnest
I did not understand the part in the question which suddenly talks about functions, so I left that out of my answer.
minecraftplayer1234
Yes, it was unnecessary. Thank you!
