使用matplotlib绘制自定义图形

一 代码

  1. from matplotlib.path importPath
  2. from matplotlib.patches importPathPatch
  3. import matplotlib.pyplot as plt
  4. fig, ax = plt.subplots()
  5. #定义绘图指令与控制点坐标
  6. #其中MOVETO表示将绘制起点移动到指定坐标
  7. #CURVE4表示使用4个控制点绘制3次贝塞尔曲线
  8. #CURVE3表示使用3个控制点绘制2次贝塞尔曲线
  9. #LINETO表示从当前位置绘制直线到指定位置
  10. #CLOSEPOLY表示从当前位置绘制直线到指定位置,并闭合多边形
  11. path_data =[
  12. (Path.MOVETO,(1.58,-2.57)),
  13. (Path.CURVE4,(0.35,-1.1)),
  14. (Path.CURVE4,(-1.75,2.0)),
  15. (Path.CURVE4,(0.375,2.0)),
  16. (Path.LINETO,(0.85,1.15)),
  17. (Path.CURVE4,(2.2,3.2)),
  18. (Path.CURVE4,(3,0.05)),
  19. (Path.CURVE4,(2.0,-0.5)),
  20. (Path.CURVE3,(3.5,-1.8)),
  21. (Path.CURVE3,(2,-2)),
  22. (Path.CLOSEPOLY,(1.58,-2.57)),
  23. ]
  24. codes, verts = zip(*path_data)
  25. path =Path(verts, codes)
  26. #按指令和坐标进行绘图
  27. patch =PathPatch(path, facecolor='r', alpha=0.9)
  28. ax.add_patch(patch)
  29. # 绘制控制多边形和连接点
  30. x, y = zip(*path.vertices)
  31. line,= ax.plot(x, y,'go-')
  32. #显示网格
  33. ax.grid()
  34. #设置坐标轴刻度大小一致,可以更真实地显示图形
  35. ax.axis('equal')
  36. plt.show()
二 运行结果

 

猜你喜欢

转载自cakin24.iteye.com/blog/2387965