您的位置:首页 > 编程语言 > PHP开发

使用matplotlib绘制自定义图形

2017-11-22 11:34 846 查看
一 代码

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()


二 运行结果



 





大小: 25 KB

查看图片附件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: