在Seaborn中设置绘图背景颜色
我正在使用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})
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
一起使用。