set axis limits on individual facets of seaborn facetgrid

Constantino picture Constantino · Jul 1, 2015 · Viewed 9.2k times · Source

I'm trying to set the x-axis limits to different values for each facet a Seaborn facetgrid distplot. I understand that I can get access to all the axes within the subplots through g.axes, so I've tried to iterate over them and set the xlim with:

g = sns.FacetGrid(mapping, col=options.facetCol, row=options.facetRow, col_order=sorted(cols), hue=options.group)
g = g.map(sns.distplot, options.axis)   

for i, ax in enumerate(g.axes.flat): # set every-other axis for testing purposes
        if i % 2 == 0[enter link description here][1]:
            ax.set_xlim(-400,500)
        else:
            ax.set_xlim(-200,200)

However, when I do this, all axes get set to (-200, 200) not just every other facet.

What am I doing wrong?

Answer

Constantino picture Constantino · Jul 1, 2015

mwaskom had the solution; posting here for completeness - just had to change the following line to:

g = sns.FacetGrid(mapping, col=options.facetCol, row=options.facetRow, col_order=sorted(cols), hue=options.group, sharex=False)