本文介绍matplotlib绘制三维点云以及简单的作图控制。

这里有一组数据,每个数据点包含了三个属性,如平均信号强度(Mean Intensity),最短邻间距离(Nearest Neighbor Distance, NND),还有体积(Volume)。我们希望可视化地查看这三个属性的相关性,这个时候可以选择绘制三维散点图。

如上图所示,就是使用 matplotlib 提供的三维作图模块绘制的结果,看上去还是不错的。当然最大的优点是可以嵌入到 HTML中,方便分析完数据直接导出代码笔记分享给合作者查看。

fig = plt.figure(figsize=(8,8))
ax = fig.add_subplot(projection='3d')
ax.scatter(xs=data['NND'], 
           ys=data['volume'], 
           zs=data['mean'],
           s = 10,
           alpha=0.1,
           )
ax.view_init(elev=36, azim=20)
ax.set_xlim(0, 1)
ax.set_ylim(0, 0.2)
ax.set_xlabel(r" NND ($\mu m$)")
ax.set_ylabel(r"Volume ($\mu m^{3}$)")
ax.set_zlabel("Mean Intensity")
plt.show()

注意上述作图命令中,除了指定三维坐标的参数,其它的还有:

  • s:散点大小
  • alpha:散点透明度
  • .view_init 控制视角,其中 elev 是水平旋转角,azim 是竖直旋转角
  • matplotlib中设置坐标轴标签时,支持类LaTeX 的公式的写法,但是字符串前注意加 r 声明
最后修改:2024 年 10 月 30 日
请大力赞赏以支持本站持续运行!