回顾 2D 作图
用赛贝尔曲线作 2d 图。此图是用基于 Matplotlib 的 Path 通过赛贝尔曲线实现的,有对赛贝尔曲线感兴趣的朋友们可以深入了解一下。在 matplotlib 中,figure 为画布,axes 为绘图区,fig.add_subplot()、plt.subplot() 方法均可以创建子图。以下是作图实践。
import matplotlib.path as mpath import matplotlib.patches as mpatches import matplotlib.pyplot as plt fig, ax = plt.subplots() #定义绘图指令与控制点坐标 Path = mpath.Path # Path 控制坐标点绘制贝塞尔曲线 # 图形数据构造 # MOVETO表示将绘制起点移动到指定坐标 # CURVE4表示使用4个控制点绘制3次贝塞尔曲线 # CURVE3表示使用3个控制点绘制2次贝塞尔曲线 # LINETO表示从当前位置绘制直线到指定位置 # CLOSEPOLY表示从当前位置绘制直线到指定位置,并闭合多边形 path_data = [ (Path.MOVETO, (1.88, -2.57)), (Path.CURVE4, (0.35, -1.1)), (Path.CURVE4, (-1.75, 1.5)), (Path.CURVE4, (0.375, 2.0)), (Path.LINETO, (0.85, 1.15)), (Path.CURVE4, (2.2, 3.2)), (Path.CURVE4, (3, 0.05)), (Path.CURVE4, (2.0, -1.5)), (Path.CLOSEPOLY, (1.58, -2.57)), ] codes,verts = zip(*path_data) path = mpath.Path(verts, codes) patch = mpatches.PathPatch(path, facecolor='r', alpha=0.5) ax.add_patch(patch) # plot control points and connecting lines x, y = zip(*path.vertices) line, = ax.plot(x, y, 'go-') ax.grid() ax.axis('equal') plt.show()
心型效果图
3D 帽子图1
Matplotlib 绘制 3D 图形使用的是 mplot3d Toolkit,即 mplot3d 工具包。绘制 3D 图可以通过创建子图,然后指定 projection 参数 为 3d 即可,返回的 ax 为 Axe