要边际化一个曲面图并使用核密度估计(KDE),可以使用Python中的Matplotlib和Seaborn库。下面是一个示例代码,演示了如何生成一个包含KDE边际的曲面图:
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# 生成随机数据
np.random.seed(0)
x = np.random.randn(500)
y = np.random.randn(500)
# 创建二维密度图
sns.kdeplot(x, y, cmap="viridis", shade=True, shade_lowest=False)
# 添加边际分布
sns.histplot(x, kde=True, color="blue", bins=20, label="X")
sns.histplot(y, kde=True, color="red", bins=20, label="Y")
# 设置图形标题和标签
plt.title("2D KDE with Marginal Distributions")
plt.xlabel("X")
plt.ylabel("Y")
# 显示图形
plt.legend()
plt.show()
这段代码首先生成了两个随机变量x和y,然后使用sns.kdeplot()
创建了一个二维密度图,并使用cmap="viridis"
设置颜色映射,shade=True
设置阴影,shade_lowest=False
防止最低点被阴影覆盖。
接下来,使用sns.histplot()
添加了x和y的边际分布,并使用kde=True
参数进行核密度估计。color="blue"
和color="red"
分别设置了x和y的边际分布颜色,bins=20
设置了直方图的箱数。
最后,使用plt.title()
、plt.xlabel()
和plt.ylabel()
设置图形的标题和标签,plt.legend()
显示图例,plt.show()
显示图形。
运行这段代码将生成一个带有KDE边际分布的二维密度图。