首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用python可视化三维多变量正态分布

用python可视化三维多变量正态分布
EN

Stack Overflow用户
提问于 2020-04-18 23:42:02
回答 2查看 820关注 0票数 0

有谁知道如何对多变量(简单地说是双变量)正态分布的PDF进行可视化,其中每个变量的分布都是投影的,如下图所示?提前谢谢。

图的来源:

来自this thesis

EN

回答 2

Stack Overflow用户

发布于 2020-04-18 23:52:14

这个图几乎肯定是使用matplotlib生成的。看看他们的tutorials吧。堆栈溢出也有一个matplotlib tag

要在3D模式下绘图,需要使用mplot3d工具包。

票数 1
EN

Stack Overflow用户

发布于 2021-11-20 14:54:46

尝试此脚本

代码语言:javascript
运行
复制
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np

def gauss1(x):
    return np.exp(-(x**2))

def gauss(x, y):
    return gauss1(x)*gauss1(2*y)

fig = plt.figure()
ax = fig.gca(projection='3d')
x = np.linspace(-3, 3, 100)
y = np.linspace(-3, 3, 100)
X, Y = np.meshgrid(x, y)
Z = gauss(X, Y)

ax.plot_surface(X, Y, Z, rstride=2, cstride=2, alpha=0.4, cmap=cm.coolwarm)
cset = ax.contourf(X, Y, Z, zdir='x', offset=-4, cmap=cm.coolwarm)
cset = ax.contourf(X, Y, Z, zdir='y', offset=4, cmap=cm.coolwarm)

ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

plt.show()

这将产生以下结果

我不确定如何只绘制投影的轮廓线,但这应该可以让您开始。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61291847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档