在对数据进行可视化的过程中,可能经常需要对数据进行三维绘图,在python中进行三维绘图其实是比较简单的,下面我们将给出一个二元高斯分布的三维图像案例,并且给出相关函数的参数。

通常,我们绘制三维图像经常需要如下步骤:

1.生成二维的网格坐标数据,我们可以使用np.meshgrid(x, y)函数进行二维网格坐标的生成,该函数通过传入的参数生成两个坐标的网格数据,并且返回的数据具有如下的格式:

importnumpy as np

t= np.linspace(1, 5, 5)

x, y=np.meshgrid(t,t)print(x)print(y)

2.通过网格坐标,生成z轴上的网格坐标。得到了x,y的网格数据之后,我们需要根据x,y的数据的到z的网格数据,我们可以通过迭代将x,y进行拼接,形成列数为2的矩阵,并通过矩阵计算z的数据,计算之后,在将z的数据维度进行转换,得到z的网格数据。

xy = np.stack([x.flat, y.flat], axis=1)print(xy)

xy = np.stack([x.flat, y.flat], axis=1)print(xy)

z= xy[:, 0] + xy[:, 1]

z=np.array(z)

z=z.reshape(x.shape)print(z)

3.获取绘制3维图像的句柄,调用相关函数进行绘制,绘制3维图面ax.plot_surface(x, y, z, cmap='rainbow', rstride=1, cstride=1),绘制3维曲线ax.scatter(),参数类似前者。

importnumpy as npfrom mpl_toolkits.mplot3d importAxes3Dimportmatplotlib.pyplot as plt

fig=plt.figure()

ax= Axes3D(fig)

ax.plot_surface(x, y, z, cmap='rainbow', rstride=1, cstride=1)

ax.set_xlabel("x")

ax.set_ylabel("y")

ax.set_zlabel("z")

4.基本上很多的绘图思路都如上,比如绘制一些分类器的分类区域图。

importnumpy as npfrom mpl_toolkits.mplot3d importAxes3Dimportmatplotlib.pyplot as plt

fig=plt.figure()

ax=Axes3D(fig)

t= np.linspace(1, 5, 30)

x, y=np.meshgrid(t,t)print(x)print(y)

xy= np.stack([x.flat, y.flat], axis=1)print(xy)

z= xy[:, 0] * xy[:, 1]

z=np.array(z)

z=z.reshape(x.shape)print(z)

ax.plot_surface(x, y, z, cmap='rainbow', rstride=1, cstride=1)

ax.set_xlabel("x")

ax.set_ylabel("y")

ax.set_zlabel("z")

plt.show()

5.绘制二元高斯分布3维图

importnumpy as npimportmatplotlib.pyplot as pltfrom mpl_toolkits.mplot3d importAxes3Dimportmatplotlib as mplif __name__ == '__main__':

mpl.rcParams['font.sans-serif'] = ['SimHei']

mpl.rcParams['axes.unicode_minus'] =False

d= np.random.randn(10000000, 2)

N= 30density, edges= np.histogramdd(d, bins=[30, 30])print("样本总数:", np.sum(density))

density= density/density.max()

x= y =np.arange(N)

t=np.meshgrid(x,y)

fig=plt.figure()

ax=Axes3D(fig)

ax.scatter(t[0], t[1], density, c='r', s=15*density, marker='o', depthshade=True)

ax.plot_surface(t[0], t[1], density, cmap='rainbow', rstride=1, cstride=1, alpha=0.9, lw=1)

ax.set_xlabel("x轴")

ax.set_ylabel("y轴")

ax.set_zlabel("z轴")

plt.title("二元高斯分布")

plt.tight_layout(0.1)

plt.show()

python绘制3维图-python——绘制二元高斯分布的三维图像,相关推荐

  1. python绘制3维图-Python 画出来六维图

    来自维基百科 我们的大脑通常最多能感知三维空间,超过三维就很难想象了.尽管是三维,理解起来也很费劲,所以大多数情况下都使用二维平面. 不过,我们仍然可以绘制出多维空间,今天就来用 Python 的 p ...

  2. python绘制3维图-Python 绘制 3 维以上的高维图

    实用技巧. 我们的大脑通常最多能感知三维空间,超过三维就很难想象了.尽管是三维,理解起来也很费劲,所以大多数情况下都使用二维平面.不过,我们仍然可以绘制出多维空间,今天就来用 Python 的 plo ...

  3. python画聚类图_python绘制的聚类图Python的局部变量和全局变量使用解惑

    局部变量:在函数中定义的变量,作用域是当前函数,只对当前函数起作用. 全局变量:在代码开头定义的变量,作用域是整段代码,对整段代码起作用. 先看下面的实例, 最后给结论.name = 'PythonT ...

  4. 【Python自动化运维】Python环境安装及基础语法

    [Python自动化运维]Python环境安装及基础语法 1. Python环境安装 2. Python基础语法 1. Python环境安装   pyenv官方安装手册:https://github. ...

  5. MATLAB | 绘制复指数函数 y = exp(j*w*n)的三维图像

    MATLAB | 绘制复指数函数 y = exp(j×w×n)的三维图像 1 思路 2 代码 3 结果 4 说明 概要: 本文内容是大二下学期<信号与系统>课上做的一道小题,目的是让我们直 ...

  6. python绘制3维图-1、2、3维图见过,用Python画出来的六维图见过么?

    我们的大脑通常最多能感知三维空间,超过三维就很难想象了.尽管是三维,理解起来也很费劲,所以大多数情况下都使用二维平面. 来自维基百科 不过,我们仍然可以绘制出多维空间,今天就来用 Python 的 p ...

  7. python画二维图_python3实现绘制二维点图

    如下所示: import matplotlib.pyplot as plt plt.plot([1,2,3],[4,5,6],'ro') plt.show()#这个智障的编辑器,,,看来高版本的确修复 ...

  8. python二维转三维_平时都用Python绘制二维图,如果用来绘制三维图会有什么效果?...

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 欢迎关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不 ...

  9. python画二维图_使用python绘制二维图形示例

    我就废话不多说了,直接上代码吧! import matplotlib.pyplot as plt #也可以使用 import pylab as pl import matplotlib.font_ma ...

最新文章

  1. 信息系统项目管理知识--知识产权与标准化
  2. java 语言章节_2020知到Java语言程序设计章节答案
  3. com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected a string but was BEGI
  4. maven原型_创建自定义Maven原型
  5. 详细解析Linux /etc/passwd文件
  6. Gson的使用,对于不需要html escape的情况的处理
  7. 个人总结1[检查复选框选择个数:]
  8. JBox2D学习 - 小球碰撞实例 .
  9. elasticsearch restful api操作使用指南
  10. redis配置文件conf详解
  11. 蓝桥杯竞赛C/C++组不支持C++11特性
  12. Qt捕捉窗口关闭事件
  13. 管理感悟:你是产品的第一个用户
  14. mysql常用语句1
  15. Boxx:一个旨在提高 Python 代码开发和调试效率的工具库,尤其在计算机视觉领域...
  16. 计算机硬盘数据存满如何开机,清理磁盘方法 让电脑开机速度加快(3-1)
  17. matlab 黄金分析,优化算法之黄金分割算法-Matlab-站长-站长头条
  18. 计算机数字键盘无法输入数字,键盘无法输入,键盘数字键打不出来
  19. html 页面自动弹出,javaScript实现自动弹出页面
  20. 【时光它会替我们记得】- 1024有奖征文

热门文章

  1. Canvas之translate,scale,rotate,skew
  2. UEBA 学术界研究现状——用户行为异常检测思路:序列挖掘prefixspan,HMM,LSTM/CNN,SVM异常检测,聚类CURE算法...
  3. mysql Navcat触发器生成订单号
  4. gulp自动化ES6转ES5
  5. 【思维导图总结——数据库系统概论】关系数据库标准语言SQL
  6. Java --Lamda表达式
  7. Java小案例——使用双重for循环实现杨辉三角的输出
  8. freeCodeCamp:Find the Longest Word in a String
  9. Guava API学习之Multimap
  10. MailScanner相关规则设置