Python学习-Matplotlib库绘制三维统计图
目录
1、绘制点
2、绘制线
3、绘制面
导入库
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d as p3d
import numpy as np
设置中文显示
plt.rc('font', family='simhei', size=15)
plt.rc('axes', unicode_minus=False)
1、绘制点
plt.rc('font', family='simhei', size=15)
plt.rc('axes', unicode_minus=False)
fig1 = plt.figure(1)
ax1 = p3d.Axes3D(fig1)
ax1.set_xlim(0, 10)
ax1.set_ylim(10, 0)
ax1.set_zlim(0, 10)
dot = [[0, 0, 0], [4, 5, 6], [7, 8, 9]]
for x in dot:
ax1.scatter(x[0], x[1], x[2], s=20, color='b', marker='*')
ax1.set_xlabel('x轴')
ax1.set_ylabel('y轴')
ax1.set_zlabel('z轴')
plt.title('三维坐标点')
plt.show()
输出
2、绘制线
plt.figure(2)
ax2 = plt.subplot(projection='3d')
ax2.set_xlim(-2, 2)
ax2.set_ylim(2, -2)
ax2.set_zlim(0, 2*np.pi)
z = np.linspace(0, 2*np.pi, 200)
x = np.sin(z)
y = np.cos(z)
ax2.plot3D(xs=x, ys=y, zs=z, color='blue')
ax2.set_xlabel('x轴')
ax2.set_ylabel('y轴')
ax2.set_zlabel('z轴')
plt.title('三维曲线')
plt.show()
输出
3、绘制面
fig3 = plt.figure(3)
ax3 = plt.subplot(projection='3d')
ax3.set_xlim(0, 50)
ax3.set_ylim(0, 50)
ax3.set_zlim(0, 50)
x = np.arange(1, 50, 1)
y = np.arange(1, 50, 1)
X, Y = np.meshgrid(x, y)
def Z(X, Y):
return X*0.2 + Y*0.3 + 20
ax3.plot_surface(X=X, Y=Y, Z=Z(X, Y), rstride=10, cstride=10, antialiased=True)
ax3.set_xlabel('x轴')
ax3.set_ylabel('y轴')
ax3.set_zlabel('z轴')
plt.title('三维曲面')
plt.show()
输出