Python使用matplotlib实现绘制自定义图形功能示例

时间:2021-09-24 20:24:07

本文实例讲述了Python使用matplotlib实现绘制自定义图形功能。分享给大家供大家参考,具体如下:

一 代码

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

二 运行结果

Python使用matplotlib实现绘制自定义图形功能示例

希望本文所述对大家Python程序设计有所帮助。

原文链接:http://blog.csdn.net/chengqiuming/article/details/78601410