在 Seaborn 中设置绘图背景颜色
Posted
技术标签:
【中文标题】在 Seaborn 中设置绘图背景颜色【英文标题】:Setting plot background colour in Seaborn 【发布时间】:2014-10-03 23:54:22 【问题描述】:我正在使用 Seaborn 在 Pandas 中绘制一些数据。
我正在制作一些非常大的地块 (factorplot
s)。
为了看到它们,我在我的大学里使用了一些可视化工具。 我正在使用由 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 中设置绘图背景颜色的主要内容,如果未能解决你的问题,请参考以下文章