matplotlib——3D图

matplotlib——3D图

实验目的

熟练掌握matplotlib中3D图的绘制方法

实验原理

Matplotlib 也可以绘制 3D 图像,与二维图像不同的是,绘制三维图像主要通过 mplot3d 模块实现。但是,使用 Matplotlib 绘制三维图像实际上是在二维画布上展示,所以一般绘制三维图像时,同样需要载入 pyplot 模块。

mplot3d 模块下主要包含 4 个大类,分别是:

mpl_toolkits.mplot3d.axes3d()

mpl_toolkits.mplot3d.axis3d()

mpl_toolkits.mplot3d.art3d()

mpl_toolkits.mplot3d.proj3d()

其中,axes3d() 下面主要包含了各种实现绘图的类和方法。axis3d() 主要是包含了和坐标轴相关的类和方法。art3d() 包含了一些可将 2D 图像转换并用于 3D 绘制的类和方法。proj3d() 中包含一些零碎的类和方法,例如计算三维向量长度等。

一般情况下,我们用到最多的就是 mpl_toolkits.mplot3d.axes3d() 中的mpl_toolkits.mplot3d.axes3d.Axes3D() 类,而 Axes3D() 下面又存在绘制不同类型 3D 图的方法。你可以通过下面的方式导入 Axes3D()。

from mpl_toolkits.mplot3d.axes3d import Axes3D或from mpl_toolkits.mplot3d import Axes3D

实验环境

Python 3.6.1

PyCharm

实验内容

练习各种3D图的绘制方法。

实验步骤

1.打开PyCharm,选择Create New Project,

创建名为matplotlib9的项目。

matplotlib——3D图_第1张图片

2.打开matplotlib9项目,右键选择New=>Python File,

matplotlib——3D图_第2张图片

创建名为3d_graph的Python文件。
matplotlib——3D图_第3张图片

3.打开3d_graph.py文件,编写代码,用于绘制三维散点图。

首先,我们导入 numpy 随机生成一组数据。

接下来,开始绘图。第一步是载入 2D, 3D 绘图模块。

第二步,使用 Axes3D() 创建 3D 图形对象。

最后,调用散点图绘制方法绘图并显示出来。

4.完整代码如下:

5.代码编写完毕,在3d_graph.py文件内,点击右键=》Run ‘3d_graph’,执行3d_graph.py文件。

在这里插入图片描述

6.在屏幕上打印出下面的图。
matplotlib——3D图_第4张图片

三维线型图

7.首先,导入包matplotlib的pyplot模块,用别名plt表示,导入包numpy,并用别名np表示,载入3D 绘图模块mpl_toolkits.mplot3d中的Axes3D。

8.接下来,需要传入 x, y, z 三个坐标的数值,使用numpy中的linspace()函数,生成1000个范围在-6π至6π之间的等间距数组x,将数组x映射到np中的sin、cos函数,分别生成数组y,z。

9.创建一个图对象fig,然后使用Axes3D函数将图对象封装成一个3D图对象ax。

10.最后,调用线型图绘制方法绘图并显示出来。

11.完整代码如下:(将代码覆盖写入到3d_graph.py文件中)

12.运行代码,在屏幕上打印出下面的图。

matplotlib——3D图_第5张图片

三维柱状图

13.首先,导入包matplotlib的pyplot模块,用别名plt表示,导入包numpy,并用别名np表示,载入3D 绘图模块mpl_toolkits.mplot3d中的Axes3D。

14.下一步,创建一个图对象fig,然后创建一个3D子图对象ax。

15.下一步,需要传入 x, y, z 三个坐标的数值,并创建颜色集合color,使用range生成一个1到12的数字序列x,使用numpy.random中的rand()函数,生成12个范围在0至1000之间的浮点数组y,z坐标为列表 [2011, 2012, 2013, 2014],使用plt.cm.Set2函数,传入用random.choice函数随机选取序列range(plt.cm.Set2.N)中的值作为参数,创建颜色集合color。

16.接下来,绘制三维柱状图,设置决定z轴维度的参数zdir=‘y’,设置颜色参数color=color,透明度参数alpha=0.8,从颜色映射集合中随机选择一种颜色,然后把它和每一个Z轴集合的对关联起来。最后,用对渲染出柱状条序列。

17.最后,为坐标轴打标签并显示图片。

18.完整代码如下:(将代码覆盖写入到3d_graph.py文件中)。

19.运行代码,在屏幕上打印出下面的图。
matplotlib——3D图_第6张图片

三维图曲面图

20.首先,导入包matplotlib的pyplot模块,用别名plt表示,导入包numpy,并用别名np表示,载入3D 绘图模块mpl_toolkits.mplot3d中的Axes3D。

21.下一步,创建一个图对象fig,然后创建一个3D子图对象ax。

22.下一步,需要传入 x, y, z 三个坐标的数值,使用numpy中的arange()函数,生成40个范围在-2至2之间的等间距数组x,y,将数组x2+y2映射到np中的sqrt函数,生成数组z。

23.绘制曲面图,使用 cmap 着色(cmap=plt.cm.winter 表示采用了 winter 配色方案),并显示图

24.完整代码如下:(将代码覆盖写入到3d_graph.py文件中)。

25.运行代码,在屏幕上打印出下面的图。

matplotlib——3D图_第7张图片

你可能感兴趣的:(Matplotlib,可视化)