今天使用python画了几个好玩的3D展示图,现在分享给大家。先贴上图片

使用的python工具包为:

from matplotlib import pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

在贴代码之前,有必要从整体上了解这些图是如何画出来的。可以把上面每一个3D图片理解成一个长方体。输入数据是三维的,x轴y轴和z轴。在第三个图片里面有x、y和z坐标的标识。在第三张图片中,我们可以理解为,z是随着x和y变化的函数。就像一个人在山丘地区走动一样,其中x和y表示的是方向,z表示的这个人在上坡还是下坡。第二张图片的中间那个,其实是一个3维的正态分布图。具体的公式为:

上面的是2维的,即只有x和y,如果是三维的话,需要一点变形,只需要在上面的公式基础之上把exp()里面改变为:exp(-((x-u)^2 + (y - u)^2)/(2q^2)), 这里的u表示平均值,q表示标准差。这样变化之后,z = f(x, y)。这就是z值的公式了,表示的是z值随着x和y值的变化而变化的函数。

下面贴一下代码

这是第二张图片的代码。

from matplotlib import pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3Dfig = plt.figure()
ax = Axes3D(fig)
len = 8;
step = 0.4;def build_layer(z_value):x = np.arange(-len, len, step);y = np.arange(-len, len, step);z1 = np.full(x.size, z_value/2)z2 = np.full(x.size, z_value/2)z1, z2 = np.meshgrid(z1, z2)z = z1 + z2;x, y = np.meshgrid(x, y)return (x, y, z);def build_gaussian_layer(mean, standard_deviation):x = np.arange(-len, len, step);y = np.arange(-len, len, step);x, y = np.meshgrid(x, y);z = np.exp(-((y-mean)**2 + (x - mean)**2)/(2*(standard_deviation**2)))z = z/(np.sqrt(2*np.pi)*standard_deviation);return (x, y, z);# 具体函数方法可用 help(function) 查看,如:help(ax.plot_surface)
x1, y1, z1 = build_layer(0.2);
ax.plot_surface(x1, y1, z1, rstride=1, cstride=1, color='green')x5, y5, z5 = build_layer(0.15);
ax.plot_surface(x5, y5, z5, rstride=1, cstride=1, color='pink')# x2, y2, z2 = build_layer(-0.26);
# ax.plot_surface(x2, y2, z2, rstride=1, cstride=1, color='yellow')
#
# x6, y6, z6 = build_layer(-0.22);
# ax.plot_surface(x6, y6, z6, rstride=1, cstride=1, color='pink')# x4, y4, z4 = build_layer(0);
# ax.plot_surface(x4, y4, z4, rstride=1, cstride=1, color='purple')x3, y3, z3 = build_gaussian_layer(0, 1)
ax.plot_surface(x3, y3, z3, rstride=1, cstride=1, cmap='rainbow')
plt.show()

这是第三张图片的代码

import numpy as np
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3dx, y = np.mgrid[-1:1:20j, -1:1:20j]
z = x * np.exp(-x ** 2 - y ** 2)ax = plt.subplot(111, projection='3d')
ax.plot_surface(x, y, z, rstride=2, cstride=1, cmap=plt.cm.coolwarm, alpha=0.8)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')plt.show()

结束

使用python绘制3维正态分布图相关推荐

  1. 二维正态分布图python代码_Python数据可视化正态分布简单分析及实现代码

    Python说来简单也简单,但是也不简单,尤其是再跟高数结合起来的时候... 正态分布(Normaldistribution),也称"常态分布",又名高斯分布(Gaussiandi ...

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

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

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

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

  4. Python学习教程:正态你还不会吗?这期的Python教程你肯定能学会

    这段时间跟大家出的很多文章都是偏娱乐型的,很多伙伴私信说之前讲过的正态有些不懂,哈哈哈,也能理解,毕竟正态学起来不是一篇教程就能完全掌握的!为什么正态分布如此特殊?为什么大量数据科学和机器学习的文章都 ...

  5. python绘制3维图-python——绘制二元高斯分布的三维图像,

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

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

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

  7. 数据可视化 | Python绘制多维柱状图:一图展示西部各省人口变迁【附本文数据和代码】

    查看原文:[数据seminar]https://mp.weixin.qq.com/s/pvx2ZzLbrBL-6cyOwVATOA Part1前言 柱状图是利用柱子的高度来反映数据差异的统计图,与一维 ...

  8. python 绘制两组数据的分布图

    可以使用 Python 中的 Matplotlib 库来绘制两组数据的分布图.下面是一个简单的示例代码: import matplotlib.pyplot as plt# 假设有两组数据,分别是 x ...

  9. python二维数组换行输出_关于用python绘制二维数组的问题

    我有一个关于用matplotlib绘制二维数组的问题.在我的代码中,我有一个2D数组,名为len(z)=20,z的值为: [[ 642.3774486 662.59980588 706.8014217 ...

  10. python绘制正态分布图_用python制作正态分布图

    赛马正态分布图 1.制作IQ数据图 import numpy as np import pandas as pd import matplotlib.pyplot as plt #使用%matplot ...

最新文章

  1. 抗侧力构件弹性位移如何计算_穿心棒法盖梁施工计算书(工字钢)
  2. 跨物种脑-脑连接!听障人士通过豚鼠大脑听到了声音 | Nature
  3. 以己之矛攻己之盾,腾讯做陌生人社交,意在抖音?
  4. java 基础包的功能_Java 8的功能基础
  5. 作业调度C语言编写,【作业调度方案】 (C语言代码)
  6. 万州哪里有维修服务器,网关可以设在服务器、微机或大型机上
  7. 【CAM应用】谈CAM软件在实际生产中的应用举例
  8. 拖拽之路(一):自定义QListWidget实现美观的拖拽样式(拖拽即选中)
  9. cap流程图_冲压工艺流程图+PFMEA+CP范例(中英文)
  10. JAVA动态申请数组
  11. JAVA解析RTF 文件
  12. JAVA毕业设计Web企业客户管理系统计算机源码+lw文档+系统+调试部署+数据库
  13. java编写一个可切换的界面_java web 项目实现手动中英文切换
  14. HSV(HSB)和HSL颜色空间
  15. Canvas 绘制方法过一遍
  16. 免费通信时代何时真正到来?
  17. 2021年新手做seo怎么做,几大绝招快速上排名收录
  18. Spark RDD的分区规则详解
  19. 谈谈我在阿里做Java开发三年半的感受和心得
  20. 重新定义容器化 Serverless 应用的数据访问

热门文章

  1. 解决file_get_contents乱码
  2. Hot Observable 和 Cold Observable的区别
  3. 11.1 项目风险管理
  4. Python 让多图排版更加美观
  5. GF系列卫星分辨率介绍
  6. Dell灵越 5559笔记本安装固态硬盘 BIOS设置
  7. 矩阵分析与应用-1.2-向量空间_内积空间与线性映射
  8. CGB2202API基础第1天
  9. 2. 量化分析技术指标
  10. Storm概念详解和工作原理,topology、spout、bolt的细节和API讲解之一