超强的3D交互工具!!怒赞~~

2022-04-11 15:25:14 浏览数 (1)

之前就有小伙伴一直私信小编推荐3D可视化图表 的绘制,最近也在系统整理关于3D图表的绘制方法,在此过程中小编发现了个不错的3D可视化展示工具,即可以让你在Jupyter notebook中轻松展示3D图表效果,今天就推荐给大家~~,主要内容如下:

  • Python-Ipyvolume库介绍
  • Python-Ipyvolume库 3D图表案例

Python-Ipyvolume库介绍

Python-Ipyvolume库可以在Jupyter Notebook中可视化3D体积和图示符(例如3d散点图)。由于该库目前刚提供1.0版本,介绍内容不是很多,小伙伴们了解其他内容可阅读Python-Ipyvolume官网[1]

Python-Ipyvolume库 3D图表案例

这一小节主要展示Python-Ipyvolume库绘制的3D可视化效果,如下:

  • Scatter plot
代码语言:javascript复制
import ipyvolume as ipv
import numpy as np
N = 1000
x, y, z = np.random.normal(0, 1, (3, N))
fig = ipv.figure()
scatter = ipv.scatter(x, y, z)
ipv.show()

Scatter plot

  • Surfaces
代码语言:javascript复制
import ipyvolume as ipv
import numpy as np
# f(u, v) -> (u, v, u*v**2)
a = np.arange(-5, 5)
U, V = np.meshgrid(a, a)
X = U
Y = V
Z = X*Y**2
ipv.figure()
ipv.plot_surface(X, Z, Y, color="orange")
ipv.plot_wireframe(X, Z, Y, color="red")
ipv.show()

Surfaces

  • Surfaces with colors
代码语言:javascript复制
from colormaps import parula
X = np.arange(-5, 5, 0.25*1)
Y = np.arange(-5, 5, 0.25*1)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2   Y**2)
Z = np.sin(R)

colormap = parula
znorm = Z - Z.min()
znorm /= znorm.ptp()
znorm.min(), znorm.max()
color = colormap(znorm)
ipv.figure()
mesh = ipv.plot_surface(X, Z, Y, color=color[...,:3])
ipv.show()

Surfaces with colors

  • mesh
代码语言:javascript复制
import ipyvolume as ipv
x, y, z, u, v = ipv.examples.klein_bottle(draw=False)
ipv.figure()
m = ipv.plot_mesh(x, y, z, wireframe=False)
ipv.squarelim()
ipv.show()

mesh

更多关于Python-Ipyvolume 的样例可参考:Python-Ipyvolume案例[2]

总结

今天小编开始了3D图表绘制的简单介绍,以后应该会陆续介绍更多优秀的3D图表绘制工具,并且也会在直播中进行展示的哈(毕竟3D可视化直播效果更好哈~),对Python-Ipyvolume 库感兴趣的小伙伴可自行探索哈~~

参考资料

[1]Python-Ipyvolume官网: https://ipyvolume.readthedocs.io/en/latest/index.html#。

[2]Python-Ipyvolume案例: https://ipyvolume.readthedocs.io/en/latest/examples.html。

0 人点赞