qmlcanvas绘制3d图形_透视Matplotlib核心功能和工具包 - 绘制3D图形

关联知识

  • Matplotlib
  • Python

线图

在此,我们将学习如何创建3D线图。 它类似于2D等效折线图,并且2D折线图的许多属性都结转到3D。

我们将在相同的轴上绘制凹凸曲线,并从不同角度查看它们,例如平行视图,顶视图以及围绕z轴的旋转。

导入所需库:

import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3D

步骤细节:

  • 准备用于x,y和z轴坐标的数据:
x = np.linspace(-5, 5, 25)y = np.linspace(-5, 5, 25)z = x**2 + y**2z1 = 1 - (x**2 + y**2)
  • 定义一个函数来绘制图形并设置其属性:
def plot_graph(axes, xlabel, ylabel, zlabel, title, elevation, rotation): axes.plot3D(x, y, z, label='concave') axes.plot(x, y, z1, label='convex') axes.view_init(elev=elevation, azim=rotation) axes.set_xlabel(xlabel) axes.set_ylabel(ylabel) axes.set_zlabel(zlabel) axes.set_title(title) axes.legend(loc='best')
  • 定义用于3D绘图的图形和轴ax1:
fig = plt.figure(figsize=(15,9))ax1 = fig.add_subplot(231, projection='3d')
  • 使用默认仰角和旋转在ax1上绘制曲线:
plot_graph(ax1, 'X', 'Y', 'Z', 'default view', None, None)
  • 定义第二个轴ax2,并以0度仰角和默认方位角对其进行绘制:
ax2 = fig.add_subplot(232, projection='3d')plot_graph(ax2, 'X', 'Y', 'Z', 'elevation angle = 0,n azimuth angle=None', 0, None)
  • 定义第三个轴ax3,并以90度仰角和默认方位角对其进行绘制:
ax3 = fig.add_subplot(233, projection='3d')plot_graph(ax3, 'X', 'Y', ' ', 'elevation angle = 90,n azimuth angle=None', 90, None)ax3.set_zticks([])
  • 定义第四个轴ax4,并使用默认仰角和-30度方位角进行绘制:
ax4 = fig.add_subplot(234, projection='3d')plot_graph(ax4, 'X', 'Y', 'Z', 'elevation angle = None,n azimuth angle=-30', None, -30)
  • 定义第五个轴ax5,并使用默认仰角和30度方位角对其进行绘制:
ax5 = fig.add_subplot(235, projection='3d')plot_graph(ax5, 'X', 'Y', 'Z', 'elevation angle = None,n azimuth angle=30', None, 30)
  • 调整绘图之间的空间,并将其显示在屏幕上:
plt.tight_layout(w_pad=5)plt.show()

分解代码

  • x = np.linspace(−5, 5, 25)创建一个具有25个点的数组,这些点在-5和5之间等距分布,并且将z和z1定义为x和y的函数
  • def plot_graph(axes, xlabel, ylabel, zlabel, title, elevation, rotation):是绘制具有给定属性的图的函数:
  • 轴指定要在其上绘制图形的轴。
  • xlabel,ylabel和zlabel分别为x,y和z轴指定标签。
  • 标题指定图的标题。
  • 仰角指定相对于XY平面的视角:0表示平行于XY平面,90表示俯视图。
  • 旋转指定在z轴上旋转的绘图的视图。
  • 高度和旋转度均以度为单位。
  • axes.plot3D(x, y, z, label='concave')与2D线图语法相似,除了我们还包括z轴。 您也可以使用axes.plot()代替axes.plot3D(),就像我们对凸曲线所做的那样。 大多数其他地块也是如此,但并非所有情况都如此。
  • axes.view_init(elev=elevation, azim=rotation)指定绘图出现时的视图。
  • ax1 = fig.add_subplot(231, projection='3d')向图中添加一个轴,该轴的布局指定为2 x 3网格:
  • projection='3d'指定它是3D轴,并在其上绘制带有三个尺寸的图形。 这是2D和3D图形语法之间的主要区别。
  • 在ax1上,我们以默认仰角和旋转角度绘制图表。
  • 在ax2到ax4上,我们绘制了具有不同仰角和旋转角度的相同图形,以查看其视图的差异。

详情参阅

透视Matplotlib核心功能和工具包 - 绘制3D图形​viadean.com
35087ae44c533034048f60f82cacd4ba.png

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

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

相关文章

雷军晒3亿估值,意欲“收编”台湾硬件创业者?

1月13日,在台湾的CSMIC 2015移动互联网两岸年会上,雷军以猎豹移动董事长的身份做了《给年轻创业者的两大方向性建议》演讲。 演讲中雷军表示,“在未来5到10年,特别适合台湾年轻创业者做的两个方向,一个是移动互联网&am…

记事本安卓软件代码设计_用轻量级工具 Notepad3 替代 36 岁的微软记事本

一不小心,微软记事本发布 36 年了。虽然微软记事本自 1985 年 Windows 1.0 以来已包含在所有版本的 Microsoft Windows 中,但它太基础了,以至于几乎所有人都要替代它,比如轻量级的 Notepad3,支持代码高亮/折叠、括号匹…

H.264编码技术

H.264基本概况随着HDTV的兴起,H.264这个规范频频出现在我们眼前,HD-DVD和蓝光DVD均计划采用这一标准进行节目制作。而且自2005年下半年以来,无论是NVIDIA还是ATI都把支持H.264硬件解码加速作为自己最值得夸耀的视频技术。H.264到底是何方“神…

macOS自带Python2.7删除之后的悲剧

2019独角兽企业重金招聘Python工程师标准>>> 起因 今天打开xcode想要开始继续写项目的时候悲剧了. Loading a plug-in failed. The plug-in or one of its prerequisite plug-ins may be missing or damaged and may need to be reinstalled. 尝试用终端打开看看报…

EasyUI 表格点击右键添加或刷新 绑定右键菜单

例1 在HTML页面中设置一个隐藏的菜单&#xff08;前提是已经使用封装的Easyui&#xff09; 代码&#xff1a; <div id"contextMenu_jygl" class"easyui-menu" style"width: 80px; display: none;"> <div …

我在全球最大的同性社交平台那点事

本文作者&#xff1a;夏之冰雪&#xff0c;i春秋签约作家 《我在百度网盘上看到上万条车主个人信息,企业、政府高官信息、各种数据库和无穷无尽的盗版》&#xff0c;一时间&#xff0c;这篇文章就火了&#xff0c;火爆程度另百度猝不及防。 其实呢&#xff0c;这事真不能全怪百…

关于java的关键字 transient

我们都知道一个对象只要实现了Serilizable接口&#xff0c;这个对象就可以被序列化&#xff0c;Java的这种序列化模式为开发者提供了很多便利&#xff0c;我们可以不必关系具体序列化的过程&#xff0c;只要这个类实现了Serilizable接口&#xff0c;这个的所有属性和方法都会自…

希捷宣布出货双碟装1TB硬盘 单碟500GB上市

希捷今天宣布&#xff0c;单碟容量高达500GB的Barracuda 7200.12 1TB硬盘已经出货。 现有的1TB硬盘产品一般都是三碟装(此前也有四碟装)&#xff0c;包括希捷自家的ST31000340AS&#xff0c;但希捷一进率先将其升级为双碟装&#xff0c;存储密度也达到了329Gb每平方英寸。这样一…

FFMpeg的output_example.c例子分析

该例子讲了如何输出一个libavformat库所支持格式的媒体文件。 &#xff08;1&#xff09;av_register_all()&#xff0c;初始化libavcodec库&#xff0c;并注册所有的编解码器和格式。 &#xff08;2&#xff09;guess_format()&#xff0c;根据文件名来获取输出文件格式&#…

大量数据+同步+多线程_Vulkan 多线程渲染

1. Overview of Vulkan1.1 计算机图形软件图形软件有两个大类&#xff1a;专用软件包&#xff08;special-purpose packages&#xff09;和通用编程软件包&#xff08;general programming packages&#xff09;。专用软件包通常提供一种UI设计语言&#xff0c;让用户直接生成想…

(五)Maven中的聚合和继承

一、为什么要聚合&#xff1f; 定义&#xff1a;我们在开发过程中&#xff0c;创建了2个以上的模块&#xff0c;每个模块都是一个独立的maven project&#xff0c;在开始的时候我们可以独立的编译和测试运行每个模块&#xff0c;但是随着项目的不断变大和复杂化&#xff0c;我们…

Django/Flask/Tornado三大web框架性能分析

写在前面&#xff1a;本文的数据涉及到之前遇到过的问题&#xff0c;大概一次 http 请求到收到响应需要多少时间。这个问题在实际工作中与框架有比较大的关系&#xff0c;因此特别就框架的性能做了一次分析。这里使用之前的一个报告数据&#xff1a; Pythons Web Framework Ben…

python urllib模块学习笔记

这个模块是最基本最常用的&#xff0c;以前看过&#xff0c;总结一下 #coding : utf-8import urlliburl http://cnblogs.com#代理服务器proxies {http:http://127.0.0.1:8087}#使用代理服务器打开r urllib.urlopen(url,proxies proxies)print r.info()print r.getcode()pri…

漂亮特殊字体可复制_12个创意字体免费下载网站

今天为大家介绍12个创意字体的网站&#xff0c;这些网站都有提供免费下载的字体哦&#xff0c;希望对大家在创作上面有所帮助。FontSpace在Fontspace上有超过42000种免费字体。在这里字体被整齐的分门归类&#xff0c;帮助你找到想要的字体。除了典型的“serif” “script”等&…

DirectShow组件原理分析及应用

1 DirectX简介  DirectX是Microsoft公司为游戏和其他高性能多媒体应用所提供的一套底层应用程序编程接口。这些接口包括对二维和三维图形&#xff0c;声效和音乐&#xff0c;输入设备以及多玩家网络游戏等的支持。目前DirectX的最高版本是DirectX 9.0。  1.1 DirectX的组成…

栈溢出笔记1.3 准备Shellcode

经过1.1和1.2节的讲述&#xff0c;我们已经知道了怎样更改EIP的值。程序运行函数之后将跳转到我们设定的位置開始运行&#xff0c;因此&#xff0c;我们须要准备一个自己的程序&#xff0c;接手后面的工作。这是一个什么样的程序&#xff1f;是一个C语言编写的代码&#xff1f;…

DirectShow开发快速入门之慨述

文章来源&#xff1a;http://tech.163.com/school 2005-08-18 10:21:32 来源: 天极网摘要&#xff1a;本篇文档概括性的介绍了DirectShow的主要组成部分&#xff0c;以及一些Directshow的基本概念。熟悉这些基本的知识对于Directshow的应用开发或者过滤器的开发者都会有所帮助…

权限表使用联合主键吗_天天写 order by,你知道Mysql底层执行流程吗?

前言 在实际的开发中一定会碰到根据某个字段进行排序后来显示结果的需求&#xff0c;但是你真的理解order by在 Mysql 底层是如何执行的吗&#xff1f;假设你要查询城市是苏州的所有人名字&#xff0c;并且按照姓名进行排序返回前 1000 个人的姓名、年龄&#xff0c;这条 sql 语…

live555源代码简介

文章出自&#xff1a;http://blog.csdn.net/imliujie/archive/2008/01/30/2072657.aspx live555源代码简介liveMedia项目的源代码包括四个基本的库&#xff0c;各种测试代码以及IVE555 Media Server。四个基本的库分别是UsageEnvironment&TaskScheduler&#xff0c;groups…

并发无锁队列学习(单生产者单消费者模型)

1、引言 本文介绍单生产者单消费者模型的队列。依据写入队列的内容是定长还是变长&#xff0c;分为单生产者单消费者定长队列和单生产者单消费者变长队列两种。单生产者单消费者模型的队列操作过程是不须要进行加锁的。生产者通过写索引控制入队操作&#xff0c;消费者通过读索…