目录

  • 1、简述
  • 2、3D line plot
  • 3、3D Scatter plot
  • 4、三维等高线图(3D Contour Plot)
  • 5、三维线框图(3D Wireframe plot)
  • 6、三维曲面图(3D Surface plot)
  • 7、添加文本(Working With Text)

1、简述

尽管Matplotlib最初设计时只考虑了二维绘图,但在后来的版本中,在Matplotlib的二维显示基础上建立了一些三维绘图实用程序,为三维数据可视化提供了一套工具。通过导入Matplotlib软件包中包含的mplot3d工具包,可以启用三维绘图。

通过将关键字projection='3d’传递给任何一个普通轴创建例程,可以创建一个三维轴。

2、3D line plot

现在我们可以绘制各种类型的三维图。最基本的三维图是由(x, y, z)三组图集创建的三维线图。这可以使用ax.plot3D函数来创建。

from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = plt.axes(projection='3d')
z = np.linspace(0, 1, 100)
x = z * np.sin(20 * z)
y = z * np.cos(20 * z)
ax.plot3D(x, y, z, 'gray')
ax.set_title('3D line plot')
plt.show()

显示结果如下:

3、3D Scatter plot

使用ax.scatter3D函数生成3D散点图。

from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = plt.axes(projection='3d')
z = np.linspace(0, 1, 100)
x = z * np.sin(20 * z)
y = z * np.cos(20 * z)
c = x + y
ax.scatter(x, y, z, c=c)
ax.set_title('3d Scatter plot')
plt.show()

4、三维等高线图(3D Contour Plot)

ax.contour3D()函数可以创建三维等高线图。它要求所有的输入数据都是二维规则网格的形式,每个点的Z数据都要进行评估。这里,我们将展示一个三维正弦函数的三维轮廓图。

from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
def f(x, y):return np.sin(np.sqrt(x ** 2 + y ** 2))x = np.linspace(-6, 6, 30)
y = np.linspace(-6, 6, 30)X, Y = np.meshgrid(x, y)
Z = f(X, Y)fig = plt.figure()
ax = plt.axes(projection='3d')
ax.contour3D(X, Y, Z, 50, cmap='binary')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
ax.set_title('3D contour')
plt.show()

5、三维线框图(3D Wireframe plot)

线框图将数值网格化,并将其投射到指定的三维曲面上,可以使产生的三维形式相当容易可视化。plot_wireframe()函数用于实现以下目的。

from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
def f(x, y):return np.sin(np.sqrt(x ** 2 + y ** 2))x = np.linspace(-6, 6, 30)
y = np.linspace(-6, 6, 30)X, Y = np.meshgrid(x, y)
Z = f(X, Y)fig = plt.figure()
ax = plt.axes(projection='3d')
ax.plot_wireframe(X, Y, Z, color='black')
ax.set_title('wireframe')
plt.show()

显示结果如下:

6、三维曲面图(3D Surface plot)

曲面图显示了一个指定的因变量(Y)和两个自变量(X和Z)之间的函数关系。该图是等高线图的配套图。表面图就像线框图,但线框的每个面都是一个填充的多边形。这可以帮助人们感知被可视化的曲面的拓扑结构。plot_surface()函数的参数为x,y和z。

from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
x = np.outer(np.linspace(-2, 2, 30), np.ones(30))
y = x.copy().T # transpose
z = np.cos(x ** 2 + y ** 2)fig = plt.figure()
ax = plt.axes(projection='3d')ax.plot_surface(x, y, z,cmap='viridis', edgecolor='none')
ax.set_title('Surface plot')
plt.show()

显示结果如下:

7、添加文本(Working With Text)

用户可以对文本属性(字体大小、字体重量、文本位置和颜色等)进行大量的控制。Matplotlib实现了大量的TeX数学符号和命令。

下面列出的命令用于在Pyplot界面中创建文本。

参数 属性
text 在Axes的任意位置添加文字。
annotate 在Axes的任意位置添加一个带有箭头的注释。
xlabel 在Axes的X轴上添加一个标签。
ylabel 在Axes的Y轴上添加一个标签。
title 给 Axes加个标题。
figtext 在图的任意位置添加文字。
suptitle 给图增加一个标题。

所有这些函数都会创建并返回一个matplotlib.text.Text()实例。下面是代码演示:

import matplotlib.pyplot as plt
fig = plt.figure()ax = fig.add_axes([0.2,0.2,0.6,0.6])ax.set_title('axes title')
ax.set_xlabel('xlabel')
ax.set_ylabel('ylabel')
ax.text(3, 8, 'boxed italics text in data coords', style='italic',
bbox = {'facecolor': 'red'})
ax.text(2, 6, r'an equation: $E = mc^2$', fontsize = 15)
ax.text(4, 0.05, 'colored text in axes coords',
verticalalignment = 'bottom', color = 'green', fontsize = 15)
ax.plot([2], [1], 'o')
ax.annotate('annotate', xy = (2, 1), xytext = (3, 4),
arrowprops = dict(facecolor = 'black', shrink = 0.05))
ax.axis([0, 10, 0, 10])
plt.show()

13、三维图绘制及添加文本相关推荐

  1. R统计绘图-corrplot热图绘制细节调整2(更改变量可视化顺序、非相关性热图绘制、添加矩形框等)

    上一篇文章推送的是怎样调整corrplot热图的可视化参数,以修改字符和图例位置,数据可视化形式和字符小大和颜色等这篇是一个补充部分,记录怎样修改参数以变量排序方式和突出部分数据.本流程还是使用R统计 ...

  2. MATLAB - 三维图绘制

    1. 带颜色的三维图 x=-10:0.1:10; y=-10:0.1:10; [X,Y]=meshgrid(x,y); Z=function(X,Y); mesh(X,Y,Z) 2. 散点图绘制 x= ...

  3. r语言三维柱状图_R语言三维图的绘制

    R语言在可视化方面的地位是毋庸置疑的,但是呢相对于MatalabR语言在三维图形的展示上存在一定的劣势.当然,作为大众的免费软件,指定不服,很多人为此也基于R语言开发了一些相应的三维图的绘制包,像rg ...

  4. 【python学习】-多张三维图共用一个colorbar(matplotlib绘制)

    多张三维图共用一个colorbar 一张三维图 多张三维图 一张三维图 绘制一张三维图,大概步骤是:导入相关库:生成三维图框,对X,Y数据进行统一网格化,绘制图形,添加colorbar,设置图形其他参 ...

  5. svg可缩放矢量图绘制线、面

    概述 什么是SVG? SVG是一种基于XML语法的图形形式,全程是可缩放矢量图(Scalable Vector Graphics).其他图像格式都是基于像素处理的,SVG则是属于对图像的形状描述,所以 ...

  6. 数学建模更新13(MATLAB绘制三维图【上】)

    MATLAB绘制三维图 一.mesh函数以及拓展函数 1.mesh(X,Y,Z)的用法 [1]X是n维向量,Y是m维向量,Z是m*n维的矩阵 [2]X.Y和Z都是m*n维的矩阵 2.mesh(Z)的用 ...

  7. 【Python气象绘图临摹】图像绘制(下):地理子图GeoAxes、xy轴设置、应用ncl色阶colormap、各标题、海岸线、添加文本、添加矩形框

    文章目录 前言 plt.fig.ax.三者绘制区别: GeoAxes地图投影:绘图投影和数据投影 x轴.y轴设置: 多个子图之间的间距调节: 图上添加文本.矩形框: python中ncl色阶color ...

  8. 圆形和多边形雷达图python-Matplotlib绘制雷达图和三维图的示例代码

    1.雷达图 程序示例 '''1.空白极坐标图''' import matplotlib.pyplot as plt plt.polar() plt.show() '''2.绘制一个极坐标点''' im ...

  9. 用matlab绘制P三曲线,知道曲线方程 怎么用matlab绘制三维图 一定要给出程序 , matlab怎样画三维曲线...

    导航:网站首页 > 知道曲线方程 怎么用matlab绘制三维图 一定要给出程序 , matlab怎样画三维曲线 知道曲线方程 怎么用matlab绘制三维图 一定要给出程序 , matlab怎样画 ...

  10. python画三维图-Python使用matplotlib绘制三维图形示例

    本文实例讲述了Python使用matplotlib绘制三维图形.分享给大家供大家参考,具体如下: 用二维泡泡图表示三维数据 泡泡的坐标2维,泡泡的大小三维,使用到的函数 plt.scatter(P[: ...

最新文章

  1. 边工作边刷题:70天一遍leetcode: day 33-3
  2. java messagebox 关闭_wince/WinForm下实现一个自动关闭的MessageBox
  3. 转:用java调用oracle存储过程总结(比较好理解)
  4. 并发编程之进程池,线程池 和 异步回调,协程
  5. activemq 重启后java程序_ActiveMQ持久化机制代码实例
  6. 【转载】Java工程师路线图
  7. MATLAB 数学应用 微分方程 常微分方程 选择ODE求解器
  8. 【核心命令 cd pwd mkdir touch ls mv cp echo vim rm】
  9. 百度地图点击城市的出现下钻
  10. java软件制作教程_Minecraft Java版材质包制作教程
  11. 描写火车站场景_形容车站人多的句子(车站场景写一段话)
  12. Troubleshooting: High Version Count Issues (文档 ID 296377.1)
  13. springboot项目有哪几种运行方式
  14. a到z的ascii码值是多少_a和A对应的ASCII码数值分别是多少啊?
  15. [经验分享] 覃超算法训练营学习笔记
  16. mysql函数名称顿号,快速统计一个单元格内有多少个名字,你不会是一个一个数的吧...
  17. python访问局域网下共享文件夹
  18. 线上应用故障排查之一:高CPU占用
  19. ubuntu内存不足1G解决办法
  20. 电化学: 交流阻抗相关知识

热门文章

  1. 【目标检测】CNN的训练图像与测试图像不一致的多尺度问题
  2. Kinetics-600数据集介绍
  3. Java多线程实现-Runnable接口
  4. pytorch基础API介绍
  5. scala下使用akka计算圆周率pi
  6. 深入解构magnitude_spectrum()
  7. VC Ping IP的类
  8. 传输信道加密Stunnel配置
  9. 21 , CSS 构造模型
  10. Cassandra -- Cassandra 3.0版本安装