使用python绘制蝴蝶函数

查看 79|回复 10
作者:矢岛舞美   


QQ截图20241114130108.jpg (49.29 KB, 下载次数: 0)
下载附件
2024-11-14 13:03 上传

[Python] 纯文本查看 复制代码import numpy as np
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.animation import FuncAnimation
import tkinter as tk
# 定义函数
def r(theta):
    return (np.exp(np.sin(theta))
            - 2 * np.cos(4 * theta)
            + np.sin((2 * theta - np.pi) / 24) ** 5)
# 创建 Tkinter 窗口
root = tk.Tk()
root.title("动态绘制极坐标图")
# 创建 Matplotlib 图形
fig, ax = plt.subplots(subplot_kw={'projection': 'polar'}, figsize=(6, 6))
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.get_tk_widget().pack()
# 初始化图形
line, = ax.plot([], [], color='red')
ax.set_facecolor('white')
ax.set_title(r'$r = e^{\sin\theta} - 2\cos4\theta + \sin^5\left(\frac{2\theta - \pi}{24}\right)$', va='bottom')
# 创建 theta 的值
theta = np.linspace(0, 24 * np.pi, 5000)
# 初始化函数
def init():
    line.set_data([], [])
    return line,
# 更新函数
def update(frame):
    current_theta = theta[:frame]
    current_r = r(current_theta)
    line.set_data(current_theta, current_r)
    ax.set_ylim(0, np.max(current_r) + 1)  # 动态调整 y 轴范围
    return line,
# 创建动画
ani = FuncAnimation(fig, update, frames=np.arange(1, len(theta)), init_func=init, blit=True, interval=1)
# 运行 Tkinter 主循环
root.mainloop()

函数, 初始化

ZnOSpin   

用MATLAB试验了一下:
a=linspace(0,24*pi,5000);
b=exp(sin(a))-2*cos(4*a)+sin((2*a-pi)/24).^5;
b(b<0)=0;
polarplot(a,b,'r')
title('$r=e^{sin(a)}-2cos(4a)+sin^5\left(\frac{2a-\pi}{24}\right)$','Interpreter','latex')
若允许矢径r为负则得左图,若不允许矢径为负则通过b(b<0)=0得右图
(好久没碰高数了,玩得我想一探究竟该函数有没有周期或极限)
晓渡寒沙   

https://files.pythonhosted.org/packages/d1/57/8d328f0b91c733aa9aa7ee540dbc49b58796c862b4fbcb1146c701e888da/numpy-1.24.4-cp38-cp38-win32.whl
https://files.pythonhosted.org/packages/c0/1e/b24a07a849c8d458f1b3724f49029f0dedf748bdedb4d5f69491314838b6/matplotlib-3.7.5-cp38-cp38-win32.whl
我又装了两个
zxhy85   

厉害了学习了
woshidai   

厉害学习学习
you1202   

学习中 感谢
nitian0963   

厉害了学习了
March0308   

厉害厉害
aahong   

厉害了学习了,感谢分享
enze999   

学习了!!!
您需要登录后才可以回帖 登录 | 立即注册

返回顶部