在Seaborn中设置绘图背景颜色

29 投票
4 回答
95888 浏览
提问于 2025-04-18 16:48

我正在使用Seaborn这个工具来绘制一些Pandas中的数据。

我制作了一些非常大的图表(叫做factorplot)。

为了查看这些图表,我在大学里使用了一些可视化设备。我的设备是一个由4x4个显示器组成的复合屏幕,中间有小小的(但不为零的)间隙——也就是显示器之间的空隙。这个间隙是黑色的。

为了减少屏幕之间的视觉断层,我希望图表的背景也是黑色的。

我查阅了文档并尝试了一些方法,但就是搞不定……这应该很简单才对。

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

我是不是需要直接使用matplotlib来处理这个图表呢?

4 个回答

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文档中获取更多信息

8

另一种方法是设置主题:

seaborn.set_theme(style='white')
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()
46

seaborn.set 是一个函数,它接受一个叫 rc 的参数,这个参数可以是一个字典,里面包含有效的 matplotlib 设置选项(rcparams)。所以我们需要设置两样东西:axes.facecolor,这是数据绘制区域的颜色;还有 figure.facecolor,这是图形中除了数据区域以外的所有部分的颜色。

(根据 @mwaskom 的建议进行了编辑)

所以如果你这样做:

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

fig, ax = plt.subplots()

你会得到:

在这里输入图片描述

这也可以和你的 FacetGrid 一起使用。

撰写回答