Change y range to start from 0 with matplotlib
Try this
import matplotlib.pyplot as plt
xdata = [1, 4, 8]
ydata = [10, 20, 30]
plt.plot(xdata, ydata)
plt.ylim(ymin=0) # this line
plt.show()
doc string as following:
>>> help(plt.ylim)
Help on function ylim in module matplotlib.pyplot:
ylim(*args, **kwargs)
Get or set the *y*-limits of the current axes.
::
ymin, ymax = ylim() # return the current ylim
ylim( (ymin, ymax) ) # set the ylim to ymin, ymax
ylim( ymin, ymax ) # set the ylim to ymin, ymax
If you do not specify args, you can pass the *ymin* and *ymax* as
kwargs, e.g.::
ylim(ymax=3) # adjust the max leaving min unchanged
ylim(ymin=1) # adjust the min leaving max unchanged
Setting limits turns autoscaling off for the y-axis.
The new axis limits are returned as a length 2 tuple.
The range must be set after the plot.
import matplotlib.pyplot as plt
f, ax = plt.subplots(1)
xdata = [1, 4, 8]
ydata = [10, 20, 30]
ax.plot(xdata, ydata)
ax.set_ylim(ymin=0)
plt.show(f)
If ymin
is changed before plotting, this will result in a range of [0, 1].
Edit: the ymin
argument has been replaced by bottom
:
ax.set_ylim(bottom=0)
Documentation: https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.set_ylim.html
You can do the same on the x axis with left and right:
ax.set_xlim(left=0)
Documentation: https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.set_xlim.html