用matplotlib在3D空间画线

2020年7月12日 / 37次阅读 / Last Modified 2020年7月14日
Matplotlib

跟在2D空间画线一样,matplotlib提供了几乎一样的接口,让我们可以在3D空间中画线。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-5, 5, 10000)

fig = plt.figure('graph')

ax = fig.add_subplot(111, projection='3d') 

ax.set_title(r'lines')
ax.plot(x, x, x, linewidth=1, label=r'$z=y=x$')
ax.plot(x, x*2, x*4, linewidth=1, label=r'$z=2y=4x$')
ax.plot(x, np.sin(x), np.cos(x), linewidth=1, label=r'$y=sin(x),z=cos(x)$')
ax.set_xlim(-5, 5)
ax.set_ylim(-5, 5)
ax.set_zlim(-5, 5)
ax.legend()
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
ax.text(0, 0, 0, 'x')  # (0,0,0)
ax.view_init(60,0)
#该函数接受两个参数,第一个参数是竖直旋转,第二个参数是水平旋转,旋转单位是度°
#ax.view_init(30, -60)

plt.show()

运行效果如下:

用matplotlib在3D空间画线
用matplotlib在3D空间画线

说明几点:

  • fig.add_subplot函数多了一个projection='3d'的选项,表示3D空间;
  • ax.plot接口,要提供x,y,z三维坐标;
  • 3D图可以动,用ax.view_init初始化视角;
  • 上面示例,我用ax.text在(0,0,0)点写了一个x;

不过,在3D空间画平面或者其它图像,matplotlib提供的接口会有所不同。

-- EOF --

本文链接:https://www.pynote.net/archives/2248

留言区

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top