003《Python数据分析、挖掘与可视化(第2版)》/例9-13.py
import numpy as np
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d

# 生成测试数据
x = np.random.randint(0, 40, 10)
y = np.random.randint(0, 40, 10)
z = 80 * abs(np.sin(x+y))

# 创建三维图形
ax = plt.subplot(projection='3d')
# 绘制三维柱状图
ax.bar3d(x,                 # 设置x轴数据
         y,                 # 设置y轴数据
         np.random.randint(0, 40, 10),  # 设置柱的z轴起始坐标为0
         dx=1,              # x方向的宽度
         dy=1,              # y方向的厚度
         dz=z,              # z方向的高度
         color=np.random.random((10,3)))       # 设置面片颜色为红色

# 设置坐标轴标签
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.xlim((0,40))
plt.ylim((0,40))

plt.show()