关联知识

  • 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

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

  1. 5绘制收银台程序_透视Matplotlib核心功能和工具包 - 高级特征绘制

    关联知识 Matplotlib Python 使用属性循环器 Matplotlib具有默认的颜色循环,当我们在给定轴上绘制更多图形时,该颜色循环会重复进行. 通过属性循环程序,我们可以在单个函数中为多 ...

  2. python动态图形_利用matplotlib实现根据实时数据动态更新图形

    我就废话不多说了,直接上代码吧! from time import sleep from threading importThread import numpy as np import matplo ...

  3. dlp型3d打印机_【论文新萃】光聚合成型3D打印技术复制印章研究

    光聚合成型3D打印技术复制印章研究 冯明帅1  彭嘉俊2  马立2  (1.广东省公安厅刑事技术中心,广东广州,510050 2.广东警官学院刑事技术系,广东广州,510440) 摘  要:本项目研究 ...

  4. html 3d手机,Egret 3D:国内首款全功能手机页游3D引擎亮相

    由白鹭时代主办的HTML5移动生态大会于12月5日在北京正式召开.会上,由白鹭时代自主研发的国内首款开源免费的全功能手机页游3D引擎--Egret 3D正式亮相,引发多方关注. 随着硬件能力的提升.W ...

  5. python 动态图形_在matplotlib中动态更新图形

    # when the code works but it's meaningless to include it ### When I can't get this part to work and ...

  6. python绘制幂函数曲线_基于matplotlib的yaxis力指数幂函数

    我有两个情节,我想在一个数字上展示.我使用的数据是科学格式的,具有不同的指数幂.我能得到同样指数幂的图吗?以下是我目前最小的工作示例:import numpy as np import matplot ...

  7. 用python绘制熊猫图案_在matplotlib中绘制熊猫日期

    我有一个固定宽度的数据文件,其中包含日期,但当我试图绘制数据时,日期没有正确地显示在x轴上. 我的文件看起来像2014-07-10 11:49:14.377102 45 2014-07-10 11:5 ...

  8. python绘制气象等值线图_用Matplotlib绘制Python等值线图

    我试图用Python的Matplotlib包绘制等高线图.我试图得到与在this其他堆栈溢出帖子中看到的结果相似的结果.但是,我遇到了一个问题,它说有一个类型错误,它告诉我TypeError: Inv ...

  9. python打开csv文件画散点图_用matplotlib从CSV文件问题绘制散点

    我已经从一个网站提取了一些数据到一个CSV文件中,我需要在matplotlib中从CSV文件中绘制散点图.我只需要CSV文件中的第2列和第3列数据.在 我试图使用for循环将CSV数据收集到一个列表中 ...

最新文章

  1. python 倒计时功能怎么用print实现_python 实现倒计时功能(gui界面)
  2. java amp amp 怎么用,java中amp;与amp;amp;的区别
  3. ListView下拉刷新、上拉载入更多之封装改进
  4. LintCode Python 简单级题目 491.回文数
  5. python error loading package_Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决...
  6. Fortinet 防火墙受高危漏洞影响,可遭远程攻击
  7. 极客大学架构师训练营 框架设计、设计原则、设计模式 第四课 听课总结
  8. 小行星项目第2部分测试驱动开发
  9. ARCGIS中的子类型(SUBTYPE)认识
  10. 【AUTOSAR-E2E】-1.3-详述COM E2E Callout解决方案
  11. Use Ant implementing Continous Integration.
  12. linux上的客户端连接window上的服务器
  13. 声表面波传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  14. 音频噪声抑制(2):维纳(Wiener)滤波器篇
  15. 吉布斯采样(Gibbs Sampling)及相关算法
  16. 生成排列 --- 蛮力法,Johnson-Trotter算法
  17. hadoop完全分布+hive数据分析
  18. Nginx-Rewrite
  19. P3956 [NOIP2017 普及组] 棋盘
  20. 保险企业如何做好个人信息保护

热门文章

  1. GCC中SIMD指令的应用方法
  2. 2005年全球H.264编解码器荟萃
  3. Flask-1-05-CookieSession
  4. Liunx安装gogs,mysql,jdk,tomcat等常用软件
  5. windows安装rsync
  6. 汇付 支付,痛苦的接入过程
  7. Magento--修改已存在的订单的运费
  8. Android基础知识大纲
  9. struct linger
  10. nodejs-- vuex中mapActions