5

根据此示例,我正在使用 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))

背景颜色没有正确改变: 在此处输入图像描述

如何修复背景颜色以填充整个情节?

4

2 回答 2

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))

瞧:

在此处输入图像描述

于 2014-09-19T19:39:24.480 回答
0

这非常接近,但我无法完全匹配颜色。如果您在 cm 模块中找到颜色图(“酷”?),您可以找到确切的颜色。

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

如果您以交互方式执行此操作,您将需要一个 plt.draw() 来显示新的颜色。

于 2014-09-19T17:34:34.600 回答