今天使用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 axes3d

fig = 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.mplot3d

x, 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维正态分布图的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持萬仟网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

用python制作正态分布图_使用python绘制3维正态分布图的方法相关推荐

  1. hdc mfc 画扇形图_使用echarts绘制条形图和扇形图

    使用echarts绘制条形图和扇形图 简单举例说明下echarts如何绘制条形图和扇形图 代码示例 echarts绘制条形图和扇形图 var mychart1=echarts.init(documen ...

  2. python制作音乐模块_用Python打造一个只属于你的专属音乐播放器,享受动手的快乐!...

    平常我们总是用爬虫爬取网页上的音乐,今天我们换个玩法,用Python制作一个独一无二只属于你的音乐播放器,小伙伴们觉得如何?如果觉得提议还不错,那就立即动手吧! 一.需要的库 pygame tkint ...

  3. 如何用python制作三维动画_用Python制作3D动画

    很多小伙伴可能不知道,在3D动画甚至电影制作的过程中,Python也在其中扮演了很重要的角色呢! 比如皮克斯的动画片一般使用Maya软件制作,并且流程中使用到了大量的Maya Python插件. 另外 ...

  4. python制作电脑软件_利用PYTHON制作桌面版爬虫软件(二)

    今天继续新的专题.主要讲解[利用PYTHON制作桌面版爬虫软件]下的如何实现界面功能(一).该讲主要包括以下三个内容:掌握如何编写主函数,运行界面. 了解pywin32模块. 如何用python识别Q ...

  5. python制作表白神器_用Python个女神做一个表白神器

    用Python给女神表白 情人节刚刚过去,但男同胞们对女神的暗恋愈加热烈,想尽一切办法表白,今天,咱们就用Python制作一个表白神器. 程序介绍 运用pygame制作一个小游戏,当女神用鼠标点击&q ...

  6. python制作阴阳师脚本_利用python制作一个阴阳师小游戏

    利用python制作一个阴阳师小游戏 发布时间:2020-11-27 13:59:49 来源:亿速云 阅读:84 这期内容当中小编将会给大家带来有关利用python制作一个阴阳师小游戏,文章内容丰富且 ...

  7. python制作手机壁纸_用Python生成自己独一无二的手机壁纸

    已经12月份了,马上就要过年了,要不要换一个喜气洋洋.洋洋洒洒.洒扫应对.对牛弹琴的手机壁纸呢? 今天小编给大家表演的节目是:用Python生成自己独一无二的手机壁纸. 首先我们需要选择一个现成的手机 ...

  8. python制作手机壁纸_用Python生成自己专属的手机春节壁纸

    ↑ 关注 + 置顶 ~ 有趣的不像个技术号 马上就要过年了,要不要换一个喜气洋洋.洋洋洒洒.洒扫应对.对牛弹琴的手机壁纸呢? 今天小五给大家表演的节目是:用Python生成自己独一无二的手机壁纸. 首 ...

  9. java绘制均线图_利用JFreeChart绘制股票K线图完整解决方案

    因为工作的需要,接触了一些股票图形绘制类的工作,其中最主要的还是股票K线图的绘制了,如果利用编程语言最底层的图形绘制方法去绘制这类图形,如果对编程语言不是特别熟悉的话,一般是有很大的困难的,通过在网上 ...

  10. python制作gif动画_使用Python代码制作GIF动态图

    使用Python PIL.Image 制作GIF图片: import PIL.Image 相关模块 img = Image.open(img_name) 打开图片 img.save(save_name ...

最新文章

  1. mysql怎么创建表视频教程_mySQL学习入门教程——2.创建表
  2. Hacker(六)----黑客藏匿之地--系统进程
  3. ospfdr选举规则_OSPF-DR与BDR的选举及作用
  4. Linux学习笔记 -- 文本编辑器之 vi与vim
  5. Spring AOP(面向切面编程)
  6. BUS HOUND调试USB驱动遇到的错误代码解析
  7. js 报错(intermediate value)(...) is not a function
  8. Spring框架的本质:1Spring框架的起源
  9. 【笔试题】刺客信条/Assassin’s Creed (阿里巴巴2020.08.26笔试第二题)
  10. PostgreSQL 生成随机数字、字符串、日期、验证码以及 UUID
  11. Autoware Docker安装和仿真
  12. 服务器被DDoS攻击,怎么破?
  13. 数据库 读写分离 原理
  14. 《蒋勋说宋词》 读后感
  15. GPU-CUDA编程学习(四)-共享内存
  16. SQL Server安装提示【需要microsoft.NET Framework 3.5 Service Pack 1】
  17. 提升深度学习模型的表现,你需要这20个技巧
  18. Transformer拿下CV顶会大奖,微软亚研获ICCV 2021最佳论文
  19. 牛客刷题笔记-数据库选择题(201-300)
  20. JavaAndroid调试方法

热门文章

  1. 使用Java实现多个文件压缩打包
  2. 选好电线 “家”倍安全
  3. 删除表记录(delete from where )
  4. 微信JS-SDK说明文档
  5. 国内著名声学期刊简介
  6. 李克秋 加盟天津大学 计算机学院,天津大学
  7. 360安全桌面没有计算机了,360安全卫士桌面上的图标不见了怎么办
  8. 巧妙按键法,包含几乎所有可以实现的按键功能(单击,双击,N击,长按等功能)
  9. 【数据库查询--电影制片系列】-- 检索出Studio表中制片公司st1的地址。
  10. 自学单片机怎么买开发板?