之前就有小伙伴一直私信小编推荐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
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
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
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
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。