I want to plot the data points that are in a 1-D array just along the horizontal axis [edit: at a given y-value], like in this plot:
How can I do this with pylab?
To plot a line plot in Matplotlib, you use the generic plot() function from the PyPlot instance. There's no specific lineplot() function - the generic one automatically plots using lines or markers. This results in much the same line plot as before, as the values of x are inferred.
The quickest way to generate a simple, 1-D plot is using the pyplot. plot() function. the figure and axis objects and plots the data onto them. the figure and axes objects automatically, and is the simplest way to create a plot.
Staven already edited his post to include how to plot the values along y-value 1, but he was using Python lists.
A variant that should be faster (although I did not measure it) only uses numpy arrays:
import numpy as np import matplotlib.pyplot as pp val = 0. # this is the value where you want the data to appear on the y-axis. ar = np.arange(10) # just as an example array pp.plot(ar, np.zeros_like(ar) + val, 'x') pp.show()
As a nice-to-use function that offers all usual matplotlib refinements via kwargs this would be:
def plot_at_y(arr, val, **kwargs): pp.plot(arr, np.zeros_like(arr) + val, 'x', **kwargs) pp.show()
This will plot the array "ar":
import matplotlib.pyplot as pp ar = [1, 2, 3, 8, 4, 5] pp.plot(ar) pp.show()
If you are using ipython, you can start it with the "-pylab" option and it will import numpy and matplotlib automatically on startup, so you just need to write:
ar = [1, 2, 3, 8, 4, 5] plot(ar)
To do a scatter plot with the y coordinate set to 1:
plot(ar, len(ar) * [1], "x")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With