赞
踩
三维空间部分点有data,如果某位置有值,mask[该位置]=1,对data进行归一化并可视化展示。
- import numpy as np
- import matplotlib.pyplot as plt
- from mpl_toolkits.mplot3d import Axes3D
-
- # 生成数据
- data = np.random.rand(12,36, 36)*0.001
-
- # 归一化数据
- data_norm = (data - np.min(data)) / (np.max(data) - np.min(data))
-
- # 生成mask
- mask = np.random.randint(0, 2, (12, 36, 36))
-
- # 绘制热力图
- fig = plt.figure()
- ax = fig.add_subplot(111, projection='3d')
- colors = plt.cm.jet(data_norm)
- colors[..., -1] = mask # 设置mask
- ax.voxels(mask, facecolors=colors, alpha=0.8)
- cbar = plt.colorbar(plt.cm.ScalarMappable(cmap=plt.cm.rainbow))
- cbar.set_label('Value')
-
- ax.set_xlabel('X')
- ax.set_ylabel('Y')
- ax.set_zlabel('Z')
- ax.set_title('3D Heatmap')
- plt.show()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。