matplotlib是Python中绘制2D图形使用最多的库,可以很轻松的将数据图形化。本文绘制了斜上抛运动,下面是最终的效果。
(菲菲老师教得好,幸不辱命 (•‾̑⌣‾̑•)✧˖° )
「准备工作」
导入所需数据包
这里的animation.FuncAnimation(fig,update,generate,interval = 5)函数,是用于生成动态图片的。其中fig表示生成的图表对象;generate函数生成数据后传递给update函数更新,这样数据不断更新,图形也不停变化;interval表示时间间隔,设置的值越小,运动速度越快123from matplotlib import pyplot as pltfrom matplotlib import animationimport math设置图形窗口参数
12345678910111213141516# 中文字体路径设置,防止中文不显示font=FontProperties(fname=r"c:\windows\fonts\simsun.ttc",size=14)# 初始化图形窗口fig = plt.figure()ax = fig.add_subplot(111)ax.set_aspect('equal')# 设置坐标轴的x,y取值范围xmin = 0ymin = 0ax = plt.axes(xlim = (xmin, xmax), ylim = (ymin, ymax))# 创建一个圆,圆点在(0,0),半径为1circle = plt.Circle((xmin, ymin), 1)ax.add_patch(circle)给定初始参数值
1234g = 9.8u = 30 # 斜上抛的初速度theta = 60 # 与水平方向的夹角θtheta_radians = math.radians(theta) # 返回一个角度的弧度值计算衍生参数
1234t_flight= 2*u*math.sin(theta_radians)/g # 从A点到B点所需时间t_max = u*math.sin(theta_radians)/g # 上升到最大高度所需时间xmax = u*math.cos(theta_radians)*t_flight # AB两点的距离ymax = u*math.sin(theta)*t_max - 0.5*g*t_max**2 # 上升的最大高度
「制作动态效果」
主要利用前面介绍的animation.FuncAnimation函数。于是我们需要构造generate与update函数,让它动起来~
generate函数
update函数
打印相关信息
动画函数
最后就能看到首页的动态图了 ヾ(◍’౪`◍)ノ゙