图形:
0、import
1
2
3
4
5
|
import numpy as np import matplotlib as mpl from matplotlib import cm from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import axes3d |
1、水平和垂直平面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# 创建画布 fig = plt.figure(figsize = ( 12 , 8 ), facecolor = 'lightyellow' ) # 创建 3d 坐标系 ax = fig.gca(fc = 'whitesmoke' , projection = '3d' ) # 二元函数定义域平面 x = np.linspace( 0 , 9 , 9 ) y = np.linspace( 0 , 9 , 9 ) x, y = np.meshgrid(x, y) # -------------------------------- 绘制 3d 图形 -------------------------------- # 平面 z=4.5 的部分 ax.plot_surface(x, y, z = x * 0 + 4.5 , color = 'g' , alpha = 0.6 ) # 平面 y=4.5 的部分 ax.plot_surface(x, y = x * 0 + 4.5 , z = y, color = 'y' , alpha = 0.6 ) # 平面 x=4.5 的部分 ax.plot_surface(x = x * 0 + 4.5 , y = y, z = x, color = 'r' , alpha = 0.6 ) # -------------------------------- -------------------------------- # 设置坐标轴标题和刻度 ax. set (xlabel = 'x' , ylabel = 'y' , zlabel = 'z' , xlim = ( 0 , 9 ), ylim = ( 0 , 9 ), zlim = ( 0 , 9 ), xticks = np.arange( 0 , 10 , 2 ), yticks = np.arange( 0 , 10 , 1 ), zticks = np.arange( 0 , 10 , 1 ) ) # 调整视角 ax.view_init(elev = 15 , # 仰角 azim = 60 # 方位角 ) # 显示图形 plt.show() |
图形:
2、斜平面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# 创建画布 fig = plt.figure(figsize = ( 12 , 8 ), facecolor = 'lightyellow' ) # 创建 3d 坐标系 ax = fig.gca(fc = 'whitesmoke' , projection = '3d' ) # 二元函数定义域 x = np.linspace( 0 , 9 , 9 ) y = np.linspace( 0 , 9 , 9 ) x, y = np.meshgrid(x, y) # -------------------------------- 绘制 3d 图形 -------------------------------- # 平面 z=3 的部分 ax.plot_surface(x, y, z = x * 0 + 3 , color = 'g' ) # 平面 z=2y 的部分 ax.plot_surface(x, y = y, z = y * 2 , color = 'y' , alpha = 0.6 ) # 平面 z=-2y + 10 部分 ax.plot_surface(x = x, y = y, z = - y * 2 + 10 , color = 'r' , alpha = 0.7 ) # -------------------------------- -------------------------------- # 设置坐标轴标题和刻度 ax. set (xlabel = 'x' , ylabel = 'y' , zlabel = 'z' , xlim = ( 0 , 9 ), ylim = ( 0 , 9 ), zlim = ( 0 , 9 ), xticks = np.arange( 0 , 10 , 2 ), yticks = np.arange( 0 , 10 , 1 ), zticks = np.arange( 0 , 10 , 1 ) ) # 调整视角 ax.view_init(elev = 15 , # 仰角 azim = 10 # 方位角 ) # 显示图形 plt.show() |
图形:
软件信息:
补充:python数据分析(matplotlib)之3d图形
使用python绘制一个简单的三维图
我就废话不多说了,大家还是直接看代码吧~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
from mpl_toolkits.mplot3d import axes3d import matplotlib.pylab as plt import numpy as np from matplotlib import cm #使用3d关键字来进行指定图像的三维投影 fig = plt.figure() ax = fig.add_subplot( 111 ,projection = '3d' ) """numpy.linspace(start, stop, num=50, endpoint=true, retstep=false, dtype=none) 在指定的间隔内返回均匀间隔的数字。 meshgrid函数创建一个二维坐标网络,这将用于二维坐标网络,这将用于变量x和y的赋值 """ u = np.linspace( - 1 , 1 , 100 ) x,y = np.meshgrid(u,u) z = x * * 2 + y * * 2 #指定行和列的步幅,以及绘制的色彩表 ax.plot_surface(x,y,z,rstride = 4 ,cstride = 4 ,cmap = cm.ylgnbu_r) plt.show() |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。
原文链接:https://www.cnblogs.com/shanger/p/13201139.html