python的三维图片_python如何做三维图

81e66ca3ae2047c5b96948981ddaa9dc.png

Python三维绘图

在遇到三维数据时,三维图像能给我们对数据带来更加深入地理解。python的matplotlib库就包含了丰富的三维绘图工具。

1、创建三维坐标轴对象Axes3D

创建Axes3D主要有两种方式,一种是利用关键字projection='3d'l来实现,另一种则是通过从mpl_toolkits.mplot3d导入对象Axes3D来实现,目的都是生成具有三维格式的对象Axes3D。#方法一,利用关键字

from matplotlib import pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

#定义坐标轴

fig = plt.figure()

ax1 = plt.axes(projection='3d')

#ax = fig.add_subplot(111,projection='3d')  #这种方法也可以画多个子图

#方法二,利用三维轴方法

from matplotlib import pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

#定义图像和三维格式坐标轴

fig=plt.figure()

ax2 = Axes3D(fig)

2、三维曲线和散点

随后在定义的坐标轴上画图:import numpy as np

z = np.linspace(0,13,1000)

x = 5*np.sin(z)

y = 5*np.cos(z)

zd = 13*np.random.random(100)

xd = 5*np.sin(zd)

yd = 5*np.cos(zd)

ax1.scatter3D(xd,yd,zd, cmap='Blues')  #绘制散点图

ax1.plot3D(x,y,z,'gray')    #绘制空间曲线

plt.show()

25f4d72fe8c8390077aabf43a9bc4665.png

3、三维曲面

下一步画三维曲面:fig = plt.figure()  #定义新的三维坐标轴

ax3 = plt.axes(projection='3d')

#定义三维数据

xx = np.arange(-5,5,0.5)

yy = np.arange(-5,5,0.5)

X, Y = np.meshgrid(xx, yy)

Z = np.sin(X)+np.cos(Y)

#作图

ax3.plot_surface(X,Y,Z,cmap='rainbow')

#ax3.contour(X,Y,Z, zdim='z',offset=-2,cmap='rainbow)   #等高线图,要设置offset,为Z的最小值

plt.show()

b3090e9da32105aaf66293ab3511ede7.png

如果加入渲染时的步长,会得到更加清晰细腻的图像:

ax3.plot_surface(X,Y,Z,rstride = 1, cstride = 1,cmap='rainbow'),其中的row和cloum_stride为横竖方向的绘图采样步长,越小绘图越精细。

206065fed3372d87483174c76b0dffa4.png

4、等高线

同时还可以将等高线投影到不同的面上:from matplotlib import pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

#定义坐标轴

fig4 = plt.figure()

ax4 = plt.axes(projection='3d')

#生成三维数据

xx = np.arange(-5,5,0.1)

yy = np.arange(-5,5,0.1)

X, Y = np.meshgrid(xx, yy)

Z = np.sin(np.sqrt(X**2+Y**2))

#作图

ax4.plot_surface(X,Y,Z,alpha=0.3,cmap='winter')     #生成表面, alpha 用于控制透明度

ax4.contour(X,Y,Z,zdir='z', offset=-3,cmap="rainbow")  #生成z方向投影,投到x-y平面

ax4.contour(X,Y,Z,zdir='x', offset=-6,cmap="rainbow")  #生成x方向投影,投到y-z平面

ax4.contour(X,Y,Z,zdir='y', offset=6,cmap="rainbow")   #生成y方向投影,投到x-z平面

#ax4.contourf(X,Y,Z,zdir='y', offset=6,cmap="rainbow")   #生成y方向投影填充,投到x-z平面,contourf()函数

#设定显示范围

ax4.set_xlabel('X')

ax4.set_xlim(-6, 4)  #拉开坐标轴范围显示投影

ax4.set_ylabel('Y')

ax4.set_ylim(-4, 6)

ax4.set_zlabel('Z')

ax4.set_zlim(-3, 3)

plt.show()

b1c3a082dfcfd49a81afa8378a7c5e0d.png

5、随机散点图

可以利用scatter()生成各种不同大小,颜色的散点图,其参数如下:#函数定义

matplotlib.pyplot.scatter(x, y,

s=None,   #散点的大小 array  scalar

c=None,   #颜色序列   array、sequency

marker=None,   #点的样式

cmap=None,    #colormap 颜色样式

norm=None,    #归一化  归一化的颜色camp

vmin=None, vmax=None,    #对应上面的归一化范围

alpha=None,     #透明度

linewidths=None,   #线宽

verts=None,   #

edgecolors=None,  #边缘颜色

data=None,

**kwargs

)

#ref:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.scatter.htmlfrom matplotlib import pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

#定义坐标轴

fig4 = plt.figure()

ax4 = plt.axes(projection='3d')

#生成三维数据

xx = np.random.random(20)*10-5   #取100个随机数,范围在5~5之间

yy = np.random.random(20)*10-5

X, Y = np.meshgrid(xx, yy)

Z = np.sin(np.sqrt(X**2+Y**2))

#作图

ax4.scatter(X,Y,Z,alpha=0.3,c=np.random.random(400),s=np.random.randint(10,20, size=(20, 40)))

#生成散点.利用c控制颜色序列,s控制大小

#设定显示范围

plt.show()

ec61c5cda97c1020fac5687607b0fd33.png

众多python培训视频,尽在python学习网,欢迎在线学习!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468466.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为何要使用docker

可能很多人听说过docker,也可能有很多人用过,但是其中的一些细节,可能不是很清楚,还有一些人,像我一样,并不知道docker,也没有用过,刚好最近一个大神朋友比较有空,让他写…

如何解决文件不存在_传奇微端配置Pak密码文件不存在怎么解决?传奇分享汇

在架设gom引擎的版本时,你是否有遇到和我一样的情况呢?微端配置后pak密码文件不存在是怎么回事呢?今天分享pak密码文件不存在的解决方法为什么会出现pak密码文件不存在呢?总结分析有以下2种原因会导致文件不存在1、没有配置对应的…

linux 统计命令执行后的行数或者统计目录下文件数目

ls |wc 是统计你这个目录下的文件数目。ls |wc -l是输出第一个结果即31即文件的数目。 转载于:https://www.cnblogs.com/apple2016/p/6956814.html

那些年,我们在?的那些日子

刚好在今天,我们几个比较好的朋友,都离开了一起奋斗的A公司。 先说明下,这个不是虚构的小说,也不是吹牛逼,就是记录我们几个曾经辉煌和落魄的日子,起名A公司也是为了保护大家的隐私,但是事情肯定…

db2 sql执行历史_5 个免费的在线 SQL 数据库环境,比Navicat 香!

来源&#xff1a;blog.csdn.net/horses/article/details/108603935作者&#xff1a;不剪发的Tony老师文章目录SQL FiddleDB Fiddledb<>fiddleSQL OnlineOracle Live SQL总结今天给大家分享几个在线的免费 SQL 运行环境&#xff0c;也就是在线数据库。这些网站可以帮助我们…

嵌入式入门必读

找到一个非常好的书籍而且不用购买的而且是高清版本的原来是放在我的知识星球里面的看到大家下载的也很多现在拿出来分享给大家从单片机到嵌入式这个不是一个简单的过程&#xff0c;其中从单进程到多进程&#xff0c;一个CPU如何做到多进程&#xff0c;怎么跑系统&#xff0c;调…

mysql远程访问 linux_Linux中开启mysql远程访问功能

1、确认3306是否对外开放&#xff0c;mysql默认状态下是不开放对外访问功能的。查看的办法如下&#xff1a;# netstat -an | grep 3306tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN从结果可以看出&#xff0c;mysql的3306端口只监听本地的连接&#xff0c;这样就阻碍了外部IP对该数…

致敬云南滑翔机

今天晚上&#xff0c;看了期待已久的篮球节目&#xff0c;我要打篮球&#xff0c;11点左右&#xff0c;感觉特别困&#xff0c;已经快睡着了&#xff0c;准备关掉电视的时候看到林书豪的图片&#xff0c;林书豪头上有一个标题《我要打篮球》&#xff0c;这个不就是《这&#xf…

震惊,用了这么多年的 CPU 利用率,其实是错的

来源&#xff1a;内核月谈, 原文链接&#xff1a;http://www.brendangregg.com/blog/2017-05-09/cpu-utilization-is-wrong.html本文中若有任何疏漏错误&#xff0c;责任在于编译者。有任何建议和意见&#xff0c;请回复内核月谈微信公众号&#xff0c;或通过 caspar at linux.…

string最大容量_string初步使用

1.什么是string?string是一个类&#xff0c;专门用来处理字符串。 而C语言中&#xff0c;字符串实际上是一个char的数组。2.实验#include #include using namespace std;int main(){ string str1 "hello world"; string str2 " smart"; char s…

【尺取或dp】codeforces C. An impassioned circulation of affection

http://codeforces.com/contest/814/problem/C 【题意】 给定一个长度为n的字符串s&#xff0c;一共有q个查询&#xff0c;每个查询给出一个数字m和一个字符ch&#xff0c;你的操作是可以改变字符串中的某些字母&#xff0c;最多改变m个&#xff0c;问操作后只包含字符ch的连续…

Linux 内核宏 time_after解析

同学们留言回复答案看看可能很多老鸟对这样的Linux 内核宏已经见惯不怪了&#xff0c;但是作为新手的Linux内核开发者&#xff0c;我觉得非常有必要了解其中的原理和作用。jiffies 这个想必大家已经非常熟悉&#xff0c;jiffies表示的是当前的系统时钟节拍总数&#xff0c;它统…

javascript mysql php_HTML、CSS、JavaScript、PHP、 MySQL 的学习顺序是什么?

下面是前端学习路线以及学习资源推荐&#xff1a;目录1. HTMLDOCTYPEHTML, XHTML, XML 差异性HTML5 新特性 及 语义化标签meta, img, script 等标签及其标签属性有兴趣可以了解 W3C 和 WHATWG HTML5 差异文章视频2. CSSCSS 基础CSS 布局CSS 动画CSS 预处理器(sass, less, stylu…

一个看似是系统问题的应用问题的解决过程

作者&#xff1a;王小二C 2019/09/04前言今天遇到一个问题&#xff0c;应用工程师分析是系统层的问题&#xff0c;然后就把这个锅给了我。最后我又把锅甩回给了应用工程师。异常log如下:I [2019-08-18 10:11:08 GMT8] binder: 1433:1561 transaction failed 29201/-28, size 8…

如何解决Binder泄漏问题

作者&#xff1a;王小二C 2019/09/06前言[011]一个看似是系统问题的应用问题的解决过程[1]中我们解决了一个注册过多的BroadcastReceiver导致的某一次发送广播失败的问题。我这边遇到了一个类似的问题&#xff0c;但是我用了一个可能网络上从来没有提出过的方法&#xff0c;解…

Docker-compose实战——Django+PostgreSQL

今天我们来用docker-compose 快速安装一个DjangoPostgreSQL的开发环境。 Compose简介 Compose 定位是“defining and running complex applications with Docker”&#xff0c;前身是 Fig&#xff0c;兼容 Fig 的模板文件。 Dockerfile 可以让用户管理一个单独的应用容器&#…

终于赢球了

感谢老将易建联我们要承认一个事实&#xff0c;阿联是这届男篮里面的老将&#xff0c;是唯一一个80后球员&#xff0c;很多人不了解老将意味着什么&#xff0c;很多打篮球的人都有一个感觉&#xff0c;在高中时代的时候&#xff0c;打球的时候经常在天上飞来飞去不觉得累&#…

Zookeeper原理和实战开发经典视频教程 百度云网盘下载

Zookeeper原理和实战开发 经典视频教程 百度云网盘下载 资源下载地址&#xff1a;http://pan.baidu.com/s/1o7ZjPeM 密码&#xff1a;r5yf 转载于:https://www.cnblogs.com/heitaok/p/6979781.html

C语言大神进来看看这个题目

之前一个读者给我发的一个题目&#xff0c;我大概看了下&#xff0c;题目的难度还是比较大的&#xff0c;而且考察的内容也比较多&#xff0c;可能在实际项目上使用比较少&#xff0c;估计十几年的老码农都没有用过&#xff0c;但是在看大神的代码的时候&#xff0c;就特别考验…

qq浏览器主页_安卓浏览器哪家强?这些小众好用的手机浏览器你知道吗

前言无论手机还是电脑&#xff0c;浏览器都可以说是最重要的软件之一了。最流行的 Chrome 和 Firefox&#xff0c;国内常见的还有 UC、QQ、360 浏览器等。手机上可供选择的优秀浏览器还有很多&#xff0c;这次就推荐些其他的小众但是也很好用的安卓手机浏览器。安卓手机浏览器推…