seaborn.kdeplot 的颜色条
Colorbar for seaborn.kdeplot
我想用 Seaborn.kdeplot 创建一个核密度估计,侧面有一个颜色条。
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np; np.random.seed(10)
import seaborn as sns; sns.set(color_codes=True)
mean, cov = [0, 2], [(1, .5), (.5, 1)]
x, y = np.random.multivariate_normal(mean, cov, size=50).T
sns.kdeplot(x,y,shade=True)
plt.show()
虽然创建了内核密度估计,但我不知道如何创建颜色条。我尝试使用
plt.colorbar()
没有成功。
您必须直接调用 scipy KDE 和 matplotlib 轮廓函数,但这只是一些额外的代码:
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np; np.random.seed(10)
import seaborn as sns; sns.set(color_codes=True)
from scipy import stats
mean, cov = [0, 2], [(1, .5), (.5, 1)]
data = np.random.multivariate_normal(mean, cov, size=50).T
kde = stats.gaussian_kde(data)
xx, yy = np.mgrid[-3:3:.01, -1:4:.01]
density = kde(np.c_[xx.flat, yy.flat].T).reshape(xx.shape)
f, ax = plt.subplots()
cset = ax.contourf(xx, yy, density, cmap="viridis")
f.colorbar(cset)
现已实施!参数cbar=True
。
您也可以使用 shade_lowest=False
不遮蔽第一层。
import seaborn as sns
import numpy as np
import matplotlib.pylab as plt
x, y = np.random.randn(2, 300)
sns.kdeplot(x, y, zorder=0, n_levels=6, shade=True,
cbar=True, shade_lowest=False, cmap='viridis')
我想用 Seaborn.kdeplot 创建一个核密度估计,侧面有一个颜色条。
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np; np.random.seed(10)
import seaborn as sns; sns.set(color_codes=True)
mean, cov = [0, 2], [(1, .5), (.5, 1)]
x, y = np.random.multivariate_normal(mean, cov, size=50).T
sns.kdeplot(x,y,shade=True)
plt.show()
虽然创建了内核密度估计,但我不知道如何创建颜色条。我尝试使用 plt.colorbar() 没有成功。
您必须直接调用 scipy KDE 和 matplotlib 轮廓函数,但这只是一些额外的代码:
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np; np.random.seed(10)
import seaborn as sns; sns.set(color_codes=True)
from scipy import stats
mean, cov = [0, 2], [(1, .5), (.5, 1)]
data = np.random.multivariate_normal(mean, cov, size=50).T
kde = stats.gaussian_kde(data)
xx, yy = np.mgrid[-3:3:.01, -1:4:.01]
density = kde(np.c_[xx.flat, yy.flat].T).reshape(xx.shape)
f, ax = plt.subplots()
cset = ax.contourf(xx, yy, density, cmap="viridis")
f.colorbar(cset)
现已实施!参数cbar=True
。
您也可以使用 shade_lowest=False
不遮蔽第一层。
import seaborn as sns
import numpy as np
import matplotlib.pylab as plt
x, y = np.random.randn(2, 300)
sns.kdeplot(x, y, zorder=0, n_levels=6, shade=True,
cbar=True, shade_lowest=False, cmap='viridis')