在Seaborn中设置绘图背景颜色

28

我正在使用Seaborn在Pandas中绘制一些数据。

我正在制作一些非常大的绘图(factorplots)。

为了查看它们,我正在使用我所在大学的一些可视化设施。 我使用由4x4个监视器组成的复合屏幕,其间距很小(但不为零)--即屏幕之间的间隙。 这个间隙是黑色的。 为了最小化屏幕之间的断裂感,我希望图形的背景是黑色的。 我已经在文档中找了一些信息并进行了尝试,但是我无法解决它。 这肯定很简单。

我可以使用set_style('darkgrid')得到灰色背景。

我需要直接在Matplotlib中访问绘图吗?


7
当我发现这个问题时,我正在寻找sns.set_style("whitegrid") - Martin Thoma
4个回答

46

seaborn.set 接受一个 rc 参数,该参数接受一个有效的 matplotlib rcparams 字典。因此,我们需要设置两个东西: axes.facecolor,它是数据绘制区域的颜色,以及 figure.facecolor,它是 axes 对象以外的整个图形部分的颜色。

(经 @mwaskom 建议编辑过)

那么如果你执行以下操作:

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

fig, ax = plt.subplots()

您将获得:

输入图像描述

这也适用于您的FacetGrid


11

我不熟悉seaborn,但以下内容似乎可以通过设置轴背景来更改背景。它可以设置任何ax.set_*元素。

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()

好的,这个可以运行。 但愿这不是最好的方法。 (虽然我怀疑它是)。 在接受之前,我会等待看看 seaborn 专家是否有更好的方法。 - Frames Catherine White

8

另一种方法是设置主题:

seaborn.set_theme(style='white')

4

在新版本的seaborn中,你也可以使用 axes_style()set_style() 快速设置绘图样式为预定义的样式之一:darkgrid, whitegrid, dark, white, ticks

st = axes_style("whitegrid")

set_style("ticks", {"xtick.major.size": 8, "ytick.major.size": 8})

更多关于seaborn的信息请参阅官方文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接