在 Seaborn 中设置绘图背景颜色

Posted

技术标签:

【中文标题】在 Seaborn 中设置绘图背景颜色【英文标题】:Setting plot background colour in Seaborn 【发布时间】:2014-10-03 23:54:22 【问题描述】:

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

我正在制作一些非常大的地块 (factorplots)。

为了看到它们,我在我的大学里使用了一些可视化工具。 我正在使用由 4 x 4 监视器组成的复合屏幕,斜角很小(但非零)——屏幕之间的间隙。 这个缝隙是黑色的。 为了最大限度地减少屏幕之间的断开连接,我希望图形背景为黑色。 我一直在挖掘文档并玩弄,但我无法解决.. 这当然很简单。

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

我需要直接访问 matplotlib 中的绘图吗?

【问题讨论】:

sns.set_style("whitegrid") 是我发现这个问题时所寻找的。​​span> 【参考方案1】:

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

【讨论】:

@SumNeuron 其他东西正在杀死你的内核【参考方案2】:

我不熟悉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 专家是否有更好的方法。【参考方案3】:

在新版本的 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)

More info in seaborn docs

【讨论】:

以上是关于在 Seaborn 中设置绘图背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何在 loadView 中设置背景颜色?

如何在html中设置网页背景颜色

如何在卡片背景中设置多种不同的颜色

如何在OpenGL中设置背景颜色

如何在 TTTAtributedLabel 中设置范围的背景颜色

如何在所有场景中设置导航栏背景颜色