本文实例讲述了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程序设计有所帮助。
原文链接:http://blog.csdn.net/chengqiuming/article/details/78601410