# How to set some xlim and ylim in Seaborn lmplot facetgrid

I'm using Seaborn's lmplot to plot a linear regression, dividing my dataset into two groups with a categorical variable.

For both x and y, I'd like to manually set the *lower bound* on both plots, but leave the *upper bound* at the Seaborn default. Here's a simple example:

```
import pandas as pd
import seaborn as sns
import random
n = 200
random.seed(2014)
base_x = [random.random() for i in range(n)]
base_y = [2*i for i in base_x]
errors = [random.uniform(0,1) for i in range(n)]
y = [i+j for i,j in zip(base_y,errors)]
df = pd.DataFrame({'X': base_x,
'Y': y,
'Z': ['A','B']*(n/2)})
mask_for_b = df.Z == 'B'
df.loc[mask_for_b,['X','Y']] = df.loc[mask_for_b,] *2
sns.lmplot('X','Y',df,col='Z',sharex=False,sharey=False)
```

This outputs the following:

But in this example, I'd like the xlim and the ylim to be (0,*) . I tried using sns.plt.ylim and sns.plt.xlim but those only affect the right-hand plot. Example:

```
sns.plt.ylim(0,)
sns.plt.xlim(0,)
```

How can I access the xlim and ylim for each plot in the FacetGrid?

You need to get hold of the axes themselves. Probably the cleanest way is to change your last row:

```
lm = sns.lmplot('X','Y',df,col='Z',sharex=False,sharey=False)
```

Then you can get hold of the axes objects (an array of axes):

```
axes = lm.axes
```

After that you can tweak the axes properties

```
axes[0,0].set_ylim(0,)
axes[0,1].set_ylim(0,)
```

creates:

From: stackoverflow.com/q/25212986

**★ Back to homepage or read more recommendations:**