## setting y-axis limit in matplotlib

### Question

I need help with setting the limits of y-axis on matplotlib. Here is the code that I tried, unsuccessfully.

``````import matplotlib.pyplot as plt

plt.figure(1, figsize = (8.5,11))
plt.suptitle('plot title')
ax = []
aPlot = plt.subplot(321, axisbg = 'w', title = "Year 1")
ax.append(aPlot)
plt.plot(paramValues,plotDataPrice, color = '#340B8C',
marker = 'o', ms = 5, mfc = '#EB1717')
plt.xticks(paramValues)
plt.ylabel('Average Price')
plt.xlabel('Mark-up')
plt.grid(True)
plt.ylim((25,250))
``````

With the data I have for this plot, I get y-axis limits of 20 and 200. However, I want the limits 20 and 250.

2017/06/06
1
452
6/6/2017 4:28:59 PM

Your code works also for me. However, another workaround can be to get the plot's axis and then change only the y-values:

```x1,x2,y1,y2 = plt.axis() plt.axis((x1,x2,25,250))```

2010/09/23

One thing you can do is to set your axis range by yourself by using matplotlib.pyplot.axis.

matplotlib.pyplot.axis

``````from matplotlib import pyplot as plt
plt.axis([0, 10, 0, 20])
``````

0,10 is for x axis range. 0,20 is for y axis range.

or you can also use matplotlib.pyplot.xlim or matplotlib.pyplot.ylim

matplotlib.pyplot.ylim

``````plt.ylim(-2, 2)
plt.xlim(0,10)
``````
2018/04/07

You can instantiate an object from `matplotlib.pyplot.axes` and call the `set_ylim()` on it. It would be something like this:

``````import matplotlib.pyplot as plt
axes = plt.axes()
axes.set_ylim([0, 1])
``````
2019/04/01

This worked at least in matplotlib version 2.2.2:

``````plt.axis([None, None, 0, 100])
``````

Probably this is a nice way to set up for example xmin and ymax only, etc.

2018/06/14

To add to @Hima's answer, if you want to modify a current x or y limit you could use the following.

``````import numpy as np # you probably alredy do this so no extra overhead
fig, axes = plt.subplot()
axes.plot(data[:,0], data[:,1])
xlim = axes.get_xlim()
# example of how to zoomout by a factor of 0.1
factor = 0.1
new_xlim = (xlim + xlim)/2 + np.array((-0.5, 0.5)) * (xlim - xlim) * (1 + factor)
axes.set_xlim(new_xlim)
``````

I find this particularly useful when I want to zoom out or zoom in just a little from the default plot settings.

2015/05/19