Python 动画没有秘密

这篇博客介绍了如何使用Python进行基本绘图和动画制作,包括弹球建模和Zeno行为的展示。通过实例代码,展示了Python在图形和动画方面的灵活性,并与MATLAB进行了对比。
摘要由CSDN通过智能技术生成

背景介绍:
Sugar 上次写过一篇《MATLAB 动画没有秘密》,这次是其姐妹篇:Python 动画也没有秘密。
但这个妹篇比姐姐要成熟很多,不仅说了如何用 Python 绘图、做动画,还由浅入深丰富了更多的知识内容。
想知道丰富了什么就请往下看吧!

Python 基本绘图

在做动画之前,先用下面的例子来看下 Python 是怎样绘图的:

import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.animation as animation
 
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
 
fig = plt.figure(tight_layout=True)
plt.plot(x,y)
plt.grid(ls="--")
plt.show()

Sugar 在 Thonny IDE 下的效果是这样的:

【解读】
1、linspace() 函数与 MATLAB 的同名函数作用相同,可以参考《MATLAB 动画没有秘密》
2、tight_layout = True 是让绘图自动紧凑布局,以免文字遮挡图线,详细请参考《matplotlib 进阶之Tight Layout guide》
3、ls="--" 这个 ls 指的是 linestyle,指定图线的线型(与 MATLAB 非常类似),详细请参考《matplotlib绘图线条样式和线条颜色》《Python可视化中Matplotlib(线条的详细样式及线型、保存图片、plot的详细风格和样式)、背景色、点和线的详细设置》

需要注意的是本例的 ls="--" 设定提网格线型,这一点 Sugar 觉得比 MATLAB 要灵活。

Python 基本动画

试一试下面的例子:

import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.animation as animation
 
def update_points(num):
    '''
    更新数据点
    '''
    point_ani.set_data(x[num], y[num])
    return point_ani,
 
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
 
fig = plt.figure(tight_layout=True)
plt.plot(x,y)
point_ani, = plt.plot(x[0], y[0], "ro")
plt.grid(ls="--")
# 开始制作动画
ani = animation.FuncAnimation(fig, update_points, np.arange(0, 100), interval=100, blit=True)

# ani.save('sin_test2.gif', writer='imagemagick', fps=10)
plt.show(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值