在三维空间绘制点,线,面

1.绘制点

用scatter()散点绘制三维坐标点

from matplotlib import pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

dot1 = [[0, 0, 0], [1, 1, 1], [

2, 2, 2], [2, 2, 3], [2, 2, 4]] # 得到五个点

plt.figure() # 得到画面

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

ax1.set_xlim(0, 5) # X轴,横向向右方向

ax1.set_ylim(5, 0) # Y轴,左向与X,Z轴互为垂直

ax1.set_zlim(0, 5) # 竖向为Z轴

color1 = ['r', 'g', 'b', 'k', 'm']

marker1 = ['o', 'v', '1', 's', 'H']

i = 0

for x in dot1:

ax1.scatter(x[0], x[1], x[2], c=color1[i],

marker=marker1[i], linewidths=4) # 用散点函数画点

i += 1

plt.show()

2.绘制线

函数plot3D(xs, ys, *args, zdir=‘z', **kwargs),用于绘制三维坐标的线,其参数使用说明如下.

(1)xs,ys,zdir=‘z': 设置(x,y,z)坐标值,为集合对象,是该函数与plot()的唯一区别.

(2) kwargs:接受键值对参数,使用方法同plot()

from matplotlib import pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

import numpy as np

plt.figure()

ax = plt.subplot(111, projection='3d')

ax.set_xlim(0, 20) # X轴,横向向右方向

ax.set_ylim(20, 0) # Y轴,左向与X,Z轴互为垂直

ax.set_zlim(0, 20) # 竖向为Z轴

z = np.linspace(0, 4*np.pi, 500)

x = 10*np.sin(z)

y = 10*np.cos(z)

ax.plot3D(x, y, z, 'black') # 绘制黑色空间曲线

# ----------------------------------------------------------

z1 = np.linspace(0, 4*np.pi, 500)

x1 = 5*np.sin(z1)

y1 = 5*np.cos(z1)

ax.plot3D(x1,y1,z1,'g--') #绘制绿色空间虚曲线

#------------------------------------------------------------

ax.plot3D([0,18,0],[5,18,10],[0,5,0],'om-') #绘制带o折线

plt.show()

3.绘制面

3D 图形需要的数据与等高线图基本相同:X、Y 数据决定坐标点,Z 轴数据决定 X、Y 坐标点对应的高度。与等高线图使用等高线来代表高度不同,3D 图形将会以更直观的形式来表示高度。

为了绘制 3D 图形,需要调用 Axes3D 对象的 plot_surface()方法来完成。

from matplotlib import pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

from matplotlib import cm

import numpy as np

fig = plt.figure(figsize=(15, 5))

ax = fig.add_subplot(131, projection='3d') # 第一个绘图区

x = np.arange(1, 50, 1)

y = np.arange(1, 50, 1)

X, Y = np.meshgrid(x, y) # 将坐标向量(x,y)变为坐标矩阵(X,Y)

def Z(X, Y): # 自定义求Z向量的函数

return X*0.2+Y*0.3+20

s1 = ax.plot_surface(X, Y, Z(X, Y), rstride=10,

cstride=10, cmap=cm.jet, linewidth=1,

antialiased=True) #绘制面

ax.set_xlim3d(0,50) #指定x轴坐标值范围

ax.set_ylim3d(0,50) #指定y轴坐标值范围

ax.set_zlim3d(0,50) #指定z轴坐标值范围

fig.colorbar(s1,shrink=1,aspect=5)

#------------------------------------------

ax1 = fig.add_subplot(132,projection='3d') #第二个绘图区

s2 = ax1.plot_surface(X,Y,Z(X,Y),rstride=1,

cstride=1, cmap=cm.jet, linewidth=1,

antialiased=False) #绘制面

fig.colorbar(s2,shrink=0.5,aspect=5)

#--------------------------------------------

d = 0.05

x1 = np.arange(-4,4,d)

y1 = np.arange(-3,3,d)

X1,Y1 = np.meshgrid(x1,y1)

def Z1(X,Y): #自定义求z向量的函数

z1 = np.exp(-X**2-Y**2)

z2 = np.exp(-(X-1)**2-(Y-1)**2)

return (z2-z1)*2 #返回Z坐标值

ax2 = fig.add_subplot(133,projection='3d')

s3 = ax2.plot_surface(X,Y,Z(X,Y),rstride=1,

cstride=1, cmap=cm.jet, linewidth=1,

antialiased=False)

fig.colorbar(s3,shrink=0.5,aspect=5)

plt.show()

到此这篇关于Python中三维坐标空间绘制的实现的文章就介绍到这了,更多相关Python 三维坐标空间内容请搜索随便开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持随便开发网!

python画三维坐标_Python中三维坐标空间绘制的实现相关推荐

  1. python画三维设置坐标_Python中三维坐标空间绘制的实现

    在三维空间绘制点,线,面 1.绘制点 用scatter()散点绘制三维坐标点 from matplotlib import pyplot as plt from mpl_toolkits.mplot3 ...

  2. python画一个点_python中画散点图

    示例代码: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D dat ...

  3. python画xy轴_python中的坐标轴该如何画?好画吗?

    曾经的数学爱搭不理,结果在工作中发现需要用python去解决相关的问题.数学不好的小伙伴已经开始发愁了.不要着急,小编跟你们一起想办法.为了方便python小白的理解,我们还是从最基础的入手.基础知识 ...

  4. 用python画小鸭_python中的鸭子类型(协议)和接口

    定义 1. 接口(interface) 学过静态语言的同学一定对接口的概念并不陌生,它类似于我们家里用的插座标准,要用电器时,我们得先查看对应的插头是否和插座孔匹配.也正因为此,接口给我们提供了很大的 ...

  5. python画指数函数图像_python中指数函数的回归线拟合

    我正在学习如何解释用Python创建的指数函数的线性回归模型.我创建了一个模型,首先通过取自然对数将指数Y数据转换成直线.然后我创建一个线性模型,并记录坡度和截距.最后,我尝试使用斜率和截距来计算样本 ...

  6. python画旋转圆_Python使用PyQt界面库绘制不停旋转的圆控件

    Python是一种面向对象的高级动态编程语言,相对于其它如C/C++语言,具有上手快.代码量少.开发效率高等特点,Qt是跨平台的C++图形用户界面应用程序开发框架,是当前主流的GUI开发工具之一,其在 ...

  7. 用python画满天星花朵_Python用27行代码绘制一幅满天星

    前言 每一个孩子都像星空中的一颗星星,散发着自己所特有的光芒照亮着整个夜空.今天就带大家用27行Python代码绘制一幅满天星吧. 全局设置 在绘制满天星的过程中要运用到turtle工具,它是Pyth ...

  8. 如何用python画函数曲线_Python笔记:用matplotlib绘制函数曲线图

    # 导入相关的包 import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl #%%配置全局绘图参数 #设置 ...

  9. 用python画面积图_Python笔记:用matplotlib绘制面积图

    用pyecharts绘制出来的面积图.圆环图太有个性了,未免感觉有点"高处不胜寒".今晚虽然休息,但继用matplotlib绘制折线图之后,我又心血来潮地想用matplotlib来 ...

最新文章

  1. 详解使用VueJS开发项目中的兼容问题
  2. Asp.net 安装包制作 (转)
  3. class对象和class文件_Class文件格式
  4. 【原创】.NET Core应用类型(Portable apps Self-contained apps)
  5. nodejs学习文档(一) 认识node.js
  6. 协方差矩阵经线性变化可以变成不相关的
  7. UML视图---构件图和部署图
  8. python 学生编程--3 多彩同心圆
  9. java的自省机制_深入理解Java反射机制
  10. QQ坦白说使用Fiddler抓包获取json
  11. 上海地铁三号线(轻轨明珠线)各车站换乘和时刻表
  12. 作为一个程序员,你的学习能力够强吗?
  13. Android学习日记(yzy):通过自定义View实现新手指导功能(蒙板效果)
  14. 记录Energies 投稿到发表经历
  15. 圆形体癣是什么样子的图片_体癣图片
  16. TKIP中MIC值的算法及实现
  17. 将Discuz!设置到新版应用中心,无需升级Discuz!版本的方法(临时方案)
  18. 任务清单丨小程序java云服务器配置123
  19. HTTP、HTTPS、TCP、UDP 协议基础知识
  20. 计算生物学属于计算机专业吗,生物信息学和计算生物学有什么区别?

热门文章

  1. 计算机本科毕业生去当兵,关于本科毕业生入伍,副连级待遇
  2. python实例化是什么意思_Python实例化传值问题
  3. 国内十大免费网络相册
  4. Chameleon 手動安裝說明 + Chameleon 2 RC5 Rev580
  5. 硬盘安装SnowLeopard(Mac OS)
  6. 安卓APP上线各应用商店-最新版
  7. Java面向对象思想、类的定义、对象的使用、对象内存图、成员变量和局部变量的区别、封装、private关键字、this关键字、构造方法、JavaBean-day06
  8. 2022年警察招考公安专业科目考试模拟试题卷及答案
  9. 德州仪器推出3D霍尔效应位置传感器;天旦亮相2021中国IPv6创新发展大会;Amazfit发布全新品牌标志 | 全球TMT...
  10. 漏洞复现-远程代码执行-CVE-2017-10271-Weblogic