码迷,mamicode.com
首页 > 其他好文 > 详细

L7-15 3D图形(二)

时间:2020-04-05 11:27:46      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:多个   bar   and   tool   gre   data   port   区域   学习   

一、课堂导入

通过上节课的学习我们利用画三维图的工具包mpl_toolkits.mplot3d绘制了三维的散点图,本节课将会继续学习绘制更加有趣的立体图形。

二、3D直方图

# 导入必要的库
import numpy as np 
import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D 
# 指定图形大小 (宽,长)
fig = plt.figure(figsize=(5,5)) 
# 二维转换为三维 
axes3d = Axes3D(fig) 
# 设置Z轴坐标值,让每一个直方图间隔距离为5 
zs = [0,5,10,15,20] 
for z in zs: 
    # 在0-10中取出值(取头不取尾)
    x = np.arange(0,10) 
    # 随机在0-30取出10个值
    y = np.random.randint(0,30,size =10) 
    # zdir将哪个方向用作z(‘x‘,‘y‘或‘z‘),指定颜色
    axes3d.bar(x,y,zs = z,zdir = x,color=[red,green,yellow,purple]) 
plt.show()

三、3D网格线

3.1 绘制1X1网格,第一子图

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
fig = plt.figure() 
#把画布分为1行1列,从左往右从上往下第1块区域
# 表示“1×1网格,第一子图”   调用Axes3d
ax = fig.add_subplot(111, projection=3d)
#生成一系列的测试数据,提供的值在0-0.1之间
X, Y, Z = axes3d.get_test_data(0.08) 
#绘制线框(输入数据,行步长,列步长)
ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10)
plt.show()

3.2 两行一列网格线

# # 两行一列
from mpl_toolkits.mplot3d import axes3d 
import matplotlib.pyplot as plt 
fig = plt.figure() 
# 表示“2×1网格,第一子图”   调用Axes3d
ax1 = fig.add_subplot(211, projection=3d) 
# 表示“2×1网格,第二子图”   调用Axes3d
ax2 = fig.add_subplot(212, projection=3d) 
#生成一系列的测试数据,提供的值在0-0.1之间
X1, Y1, Z1 = axes3d.get_test_data(0.08) 
X2, Y2, Z2 = axes3d.get_test_data(0.08) 
#绘制线框
ax1.plot_wireframe(X1, Y1, Z1, rstride=5, cstride=5) 
ax2.plot_wireframe(X2, Y2, Z2, rstride=5, cstride=5) 
plt.show()

四、3D立体图

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 创建一个绘图对象 
fig = plt.figure()
# 将多个三维图放在一个平面
# # 表示“2×1网格,第一子图”   调用Axes3d
ax = fig.add_subplot(111, projection=3d)
#任意三点形成一个面
X = [3,1,2,4,5]
Y = [3,7,4,5,3]
Z = [1,2,1,6,2]
# 绘制曲面 (四个点可以确定一个四面体)
ax.plot_trisurf(X, Y, Z)
plt.show()

五、正四棱锥

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection=3d)
X = [0,4,4,0,2]
Y = [0,0,4,4,2]
Z = [0,0,0,0,4]
ax.plot_trisurf(X, Y, Z)
plt.show()

 

L7-15 3D图形(二)

标签:多个   bar   and   tool   gre   data   port   区域   学习   

原文地址:https://www.cnblogs.com/xiaoxiao-ya/p/12570581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!