简体   繁体   中英

Setting plot background colour in Seaborn

I am using Seaborn to plot some data in Pandas.

I am making some very large plots ( factorplot s).

To see them, I am using some visualisation facilities at my university. I am using a Compound screen made up of 4 by 4 monitors with small (but nonzero) bevel -- the gap between the screens. This gap is black. To minimise the disconnect between the screen i want the graph backgound to be black. I have been digging around the documentation and playing around and I can't work it out.. Surely this is simple.

I can get grey background using set_style('darkgrid')

do i need to access the plot in matplotlib directly?

seaborn.set takes an rc argument that accepts a dictionary of valid matplotlib rcparams . So we need to set two things: the axes.facecolor , which is the color of the area where the data are drawn, and the figure.facecolor , which is the everything a part of the figure outside of the axes object.

(edited with advice from @mwaskom)

So if you do:

%matplotlib inline
import matplotlib.pyplot as plt
import seaborn
seaborn.set(rc={'axes.facecolor':'cornflowerblue', 'figure.facecolor':'cornflowerblue'})

fig, ax = plt.subplots()

You get:

在此处输入图片说明

And that'll work with your FacetGrid as well.

I am not familiar with seaborn but the following appears to let you change the background by setting the axes background. It can set any of the ax.set_* elements.

import seaborn as sns
import pandas as pd 
import numpy as np
import matplotlib.pyplot as plt

m=pd.DataFrame({'x':['1','1','2','2','13','13'],
                'y':np.random.randn(6)})

facet = sns.factorplot('x','y',data=m)

facet.set(axis_bgcolor='k')

plt.show()

Another way is to set the theme:

seaborn.set_theme(style='white')

In new versions of seaborn you can also use axes_style() and set_style() to quickly set the plot style to one of the predefined styles: darkgrid, whitegrid, dark, white, ticks

st = axes_style("whitegrid")
set_style("ticks", {"xtick.major.size": 8, "ytick.major.size": 8})

More info in seaborn docs

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM