将背景颜色图的大小设置为seaborn jointplot中轴的大小

时间:2014-09-19 15:39:41

标签: python seaborn

我根据this example使用seaborn创建情节。

import numpy as np
import pandas as pd
import seaborn as sns
sns.set(style="white")

rs = np.random.RandomState(5)
mean = [0, 0]
cov = [(1, .5), (.5, 1)]
x1, x2 = rs.multivariate_normal(mean, cov, 500).T
x1 = pd.Series(x1, name="$X_1$")
x2 = pd.Series(x2, name="$X_2$")

g = sns.jointplot(x1, x2, kind="kde", size=7, space=0)

但是,当我将最后一行代码更改为

g = sns.jointplot(x1, x2, kind="kde", size=7, space=0, xlim=(-5,5), ylim=(-5,5))

背景颜色未正确更改: enter image description here

如何修复背景颜色,使其填满整个情节?

2 个答案:

答案 0 :(得分:5)

你需要告诉底层函数(kdeplot)进一步扩展其KDE估计值。这是通过cut参数实现的,该参数是KDE带宽的函数。它默认为3,并且没有明确的方法来确切地说明你需要如何设置它,但它不应该那么难以发现并找到有效的值。使用jointplot时,您需要在joint_kws词典中传递此内容,以便将其发送到相应的绘图功能。

sns.jointplot(x1, x2, kind="kde", size=7, space=0,
              joint_kws={"cut": 10},
              xlim=(-5,5), ylim=(-5,5))

瞧:

enter image description here

答案 1 :(得分:0)

这非常接近,但我不能完全匹配颜色。如果你在cm模块中找到了colourmap(“cool”?),你可以找到确切的颜色。

ax = plt.gcf().axes[0]
ax.set_axis_bgcolor((.93,.93,1))

如果您以交互方式进行此操作,则需要使用plt.draw()来显示新颜色。