绘制三维散点图_[Python]三维散点曲线曲⾯(含有笔记、代
码、注释)
3D散点
import matplotlib as mpl
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
xs1 = np.random.randint(30,40,100)
ys1 = np.random.randint(20,30,100)
zs1 = np.random.randint(10,20,100)
xs2 = np.random.randint(50,60,100)
ys2 = np.random.randint(30,40,100)
zs2 = np.random.randint(50,70,100)
xs3 = np.random.randint(10,30,100)
ys3 = np.random.randint(40,50,100)
zs3 = np.random.randint(40,50,100)
# ⽅式1:设置三维图形模式
fig = plt.figure() # 创建⼀个画布figure,然后在这个画布上加各种元素。
ax = Axes3D(fig) # 将画布作⽤于 Axes3D 对象上。
ax.scatter(xs1,ys1,zs1) # 画出(xs1,ys1,zs1)的散点图。
ax.scatter(xs2,ys2,zs2,c='r',marker='^')
ax.scatter(xs3,ys3,zs3,c='g',marker='*')
ax.set_xlabel('X label') # 画出坐标轴
ax.set_ylabel('Y label')
ax.set_zlabel('Z label')
plt.show()
3D曲线
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D import numpy as np
import matplotlib.pyplot as plt
# 设置图例字号
# ⽅式2:设置三维图形模式
fig = plt.figure()
ax = a(projection='3d')
# 测试数据
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100) z = np.linspace(-4, 4, 100) / 4
r = z**3 + 1
x = r * np.sin(theta)
y = r * np.cos(theta)
# 绘制图形
ax.plot(x, y, z, label='parametric curve')
# 显⽰图例
ax.legend()
# 显⽰图形
plt.show()
3D曲线拟合(含噪⾳)
# 不含噪声散点图
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D import numpy as np
import matplotlib.pyplot as plt
# 设置图例字号
# ⽅式2:设置三维图形模式
fig = plt.figure()
ax = a(projection='3d')
# 测试数据
x = np.linspace(-4 * np.pi, 4 * np.pi, 30)
y = x
z = x * x
ax.scatter(x,y,z) # 画出(x,y,z)的散点图。
运⾏结果:
<mpl_toolkits.mplot3d.art3d.Path3DCollection at 0x2e7d13350d0>
# 不含噪声曲线图
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
# 设置图例字号
# ⽅式2:设置三维图形模式
fig = plt.figure()
ax = a(projection='3d')
# 测试数据
x = np.linspace(-4 * np.pi, 4 * np.pi, 30)
y = x
z = x * x
# 绘制图形
ax.plot(x, y, z, label='parametric curve')
# 显⽰图例
ax.legend()
# 显⽰图形
plt.show()
# 含噪声散点图
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
# 设置图例字号
# ⽅式2:设置三维图形模式
fig = plt.figure()
ax = a(projection='3d')
# 测试数据
x = np.linspace(-4 * np.pi, 4 * np.pi, 30)
linspace numpy
y = x + np.random.randn(y.shape[-1]) * 2.5
z = x * x
ax.scatter(x,y,z) # 画出(x,y,z)的散点图。
运⾏结果:
<mpl_toolkits.mplot3d.art3d.Path3DCollection at 0x2e7cf46fbe0>
# 含噪声曲线图
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
# 设置图例字号
# ⽅式2:设置三维图形模式
fig = plt.figure()
ax = a(projection='3d')
# 测试数据
x = np.linspace(-4 * np.pi, 4 * np.pi, 30)
y = x + np.random.randn(x.shape[-1]) * 2.5
z = x * x
# 绘制图形
ax.plot(x, y, z, label='parametric curve')
# 显⽰图例
ax.legend()
# 显⽰图形
plt.show()
# 含噪声曲线拟合图
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
# 设置图例字号
# ⽅式2:设置三维图形模式
fig = plt.figure()
ax = a(projection='3d')
# 测试数据
x = np.linspace(-4 * np.pi, 4 * np.pi, 30)
y = x + np.random.randn(x.shape[-1]) * 0.7
z = x * x
# 绘制图形
ax.plot(x, y, z, label='parametric1 curve')
p_yx = np.polyfit(y,x,2);
x_out = np.polyval(p_yx, y);
p_yz = np.polyfit(y,z,2);
z_out = np.polyval(p_yz, y);
ax.plot(x_out, y, z_out, label='parametric2 curve')
# 显⽰图例
ax.legend()
# 显⽰图形
plt.show()
# 拟合是拟合出⼀个误差⼩的曲线,这⾥并不包括光滑,当噪⾳⼤时,拟合的曲线不光滑。
3D曲⾯

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。