0% found this document useful (0 votes)
51 views7 pages

sns12 - Controlling Figure Aesthetics

The document discusses how to customize figure aesthetics in Seaborn to create attractive and effective visualizations. It describes Seaborn's preset figure styles (darkgrid, whitegrid, etc.), how to modify elements like axis spines, and how to temporarily override settings. Scaling plot elements to suit different contexts like papers or talks is also covered through Seaborn's plotting contexts. The document provides examples of adjusting various stylistic parameters.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
51 views7 pages

sns12 - Controlling Figure Aesthetics

The document discusses how to customize figure aesthetics in Seaborn to create attractive and effective visualizations. It describes Seaborn's preset figure styles (darkgrid, whitegrid, etc.), how to modify elements like axis spines, and how to temporarily override settings. Scaling plot elements to suit different contexts like papers or talks is also covered through Seaborn's plotting contexts. The document provides examples of adjusting various stylistic parameters.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Controlling figure aesthetics

Drawing attractive figures is important. When making figures for yourself, as you explore a dataset, it’s nice to have plots that are pleasant to
look at. Visualizations are also central to communicating quantitative insights to an audience, and in that setting it’s even more necessary to
have figures that catch the attention and draw a viewer in.

Matplotlib is highly customizable, but it can be hard to know what settings to tweak to achieve an attractive plot. Seaborn comes with a
number of customized themes and a high-level interface for controlling the look of matplotlib figures.

Let’s define a simple function to plot some offset sine waves, which will help us see the different stylistic parameters we can tweak.

This is what the plot looks like with matplotlib defaults:

To switch to seaborn defaults, simply call the set_theme() function.


(Note that in versions of seaborn prior to 0.8, set_theme() was called on import. On later versions, it must be explicitly invoked).

Seaborn splits matplotlib parameters into two independent groups. The first group sets the aesthetic style of the plot, and the second scales
various elements of the figure so that it can be easily incorporated into different contexts.

The interface for manipulating these parameters are two pairs of functions. To control the style, use the axes_style() and set_style()
functions. To scale the plot, use the plotting_context() and set_context() functions. In both cases, the first function returns a dictionary of
parameters and the second sets the matplotlib defaults.

Seaborn figure styles


There are five preset seaborn themes: darkgrid , whitegrid , dark , white , and ticks . They are each suited to different applications and
personal preferences. The default theme is darkgrid . As mentioned above, the grid helps the plot serve as a lookup table for quantitative
information, and the white-on grey helps to keep the grid from competing with lines that represent data. The whitegrid theme is similar, but
it is better suited to plots with heavy data elements:

For many plots, (especially for settings like talks, where you primarily want to use figures to provide impressions of patterns in the data), the
grid is less necessary.
Sometimes you might want to give a little extra structure to the plots, which is where ticks come in handy:

sns.set_style("ticks")
sinplot()

Removing axes spines


Both the white and ticks styles can benefit from removing the top and right axes spines, which are not needed. The seaborn function
despine() can be called to remove them:
Some plots benefit from offsetting the spines away from the data, which can also be done when calling despine() . When the ticks don’t cover
the whole range of the axis, the trim parameter will limit the range of the surviving spines.

f, ax = plt.subplots()
sns.violinplot(data=data)
sns.despine(offset=10, trim=True);

You can also control which spines are removed with additional arguments to despine() :

sns.set_style("whitegrid")
sns.boxplot(data=data, palette="deep")
sns.despine(left=True)

Temporarily setting figure style


Although it’s easy to switch back and forth, you can also use the axes_style() function in a with statement to temporarily set plot
parameters. This also allows you to make figures with differently-styled axes:
with sns.axes_style("ticks"):
ax = f.add_subplot(gs[1, 0])
sinplot(6)

with sns.axes_style("whitegrid"):
ax = f.add_subplot(gs[1, 1])
sinplot(6)

f.tight_layout()

Overriding elements of the seaborn styles


If you want to customize the seaborn styles, you can pass a dictionary of parameters to the rc argument of axes_style() and set_style() .
Note that you can only override the parameters that are part of the style definition through this method. (However, the higher-level
set_theme() function takes a dictionary of any matplotlib parameters).

If you want to see what parameters are included, you can just call the function with no arguments, which will return the current settings:

You can then set different versions of these parameters:


Scaling plot elements
A separate set of parameters control the scale of plot elements, which should let you use the same code to make plots that are suited for use in
settings where larger or smaller plots are appropriate.

First let’s reset the default parameters by calling set_theme() :

The four preset contexts, in order of relative size, are paper , notebook , talk , and poster . The notebook style is the default, and was used in
the plots above.
Controlling figure aesthetics — seaborn 0.13.2 documentation https://seaborn.pydata.org/tutorial/aesthetics.html

Most of what you now know about the style functions should transfer to the context functions.

You can call set_context() with one of these names to set the parameters, and you can override the parameters by providing a dictionary of
parameter values.

You can also independently scale the size of the font elements when changing the context. (This option is also available through the top-level
set() function).

sns.set_context("notebook", font_scale=1.5, rc={"lines.linewidth": 2.5})


sinplot()

Similarly, you can temporarily control the scale of figures nested under a with statement.

Both the style and the context can be quickly configured with the set() function. This function also sets the default color palette, but that will
be covered in more detail in the next section of the tutorial.

© Copyright 2012-2024, Michael Waskom.


v0.13.2 Archive
Created using Sphinx and the PyData Theme.

7 of 7 09/02/2024, 06:10

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy