FacetGrid change titles

facet-grid, matplotlib, python, seaborn

Solution

You can access the axes of a FacetGrid (`g = sns.FacetGrid(...)`) via `g.axes`. With that you are free to use any matplotlib method you like to tweak the plot.

Change titles:

axes = g.axes.flatten()
axes[0].set_title("Internal")
axes[1].set_title("External")

Change labels:

axes = g.axes.flatten()
axes[0].set_ylabel("Number of Defects")
for ax in axes:
    ax.set_xlabel("Percentage Depth")

Note that I prefer those above the `FacetGrid`'s internal `g.set_axis_labels` and `set_titles` methods, because it makes it more obvious which axes is to be labelled.

Problem

I am trying to create a FacetGrid in Seaborn My code is currently: ``` g = sns.FacetGrid(df_reduced, col="ActualExternal", margin_titles=True) bins = np.linspace(0, 100, 20) g.map(plt.hist, "ActualDepth", color="steelblue", bins=bins, width=4.5) ``` This gives my the Figure Now, instead of "ActualExternal = 0.0" and "ActualExternal = 1.0", I would like the titles "Internal" and "External" And, instead of "ActualDepth" I would like the xlabel to say "Percentage Depth" Finally, I would like to add a ylabel of "Number of Defects".

Original source