wideband 发表于 2021-9-29 14:55:38

matplotlib绘制动画,如何在显示图中,直接通过文本框输入 数值给 变量y ?

matplotlib绘制动画,如何在显示图中,直接通过文本框输入 数值给 变量y   ?

而不是 代码中的一段函数?y = np.sin(2 * np.pi * (x - 0.01 * i))

import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation
# First set up the figure, the axis, and the plot element we want to animate
fig = plt.figure()
ax = plt.axes(xlim=(0, 2), ylim=(-2, 2))
line, = ax.plot([], [], lw=2)
# initialization function: plot the background of each frame
def init():
line.set_data([], [])
return line,
# animation function. This is called sequentially
# note: i is framenumber
def animate(i):
x = np.linspace(0, 2, 1000)
y = np.sin(2 * np.pi * (x - 0.01 * i))
line.set_data(x, y)
return line,
# call the animator. blit=True means only re-draw the parts that have changed.
anim = animation.FuncAnimation(fig, animate, init_func=init,
                frames=200, interval=20, blit=True)
#anim.save('basic_animation.mp4', fps=30, extra_args=['-vcodec', 'libx264'])
plt.show()


suchocolate 发表于 2021-9-29 15:26:36

input:
y = float(input('Please input a float number:'))
不过这样每次想显示一个帧都会需要你输入。不太确定你这样做的目的,还不如提前把数据准备好,让他按照顺序自动获取。

wideband 发表于 2021-9-29 15:32:34

suchocolate 发表于 2021-9-29 15:26
input:

不过这样每次想显示一个帧都会需要你输入。不太确定你这样做的目的,还不如提前把数据准备好, ...

谢谢,我是希望 在动画图中 有个文本框 可以给Y赋值,这个该怎么实现呢?

suchocolate 发表于 2021-9-29 15:49:19

wideband 发表于 2021-9-29 15:32
谢谢,我是希望 在动画图中 有个文本框 可以给Y赋值,这个该怎么实现呢?

mp有一个text_box,它支持交互输入,但同时它也会改变呈现的方式,就不能用动画了。
https://matplotlib.org/3.3.1/gallery/widgets/buttons.html#sphx-glr-gallery-widgets-buttons-py

阿奇_o 发表于 2021-9-29 17:52:25

参考:https://stackoverflow.com/questions/21197728/embedding-a-matplotlib-animation-into-a-tkinter-frame
第二个人Victor的回答,可以解决你的问题。

wideband 发表于 2021-10-1 17:10:27

阿奇_o 发表于 2021-9-29 17:52
参考:https://stackoverflow.com/questions/21197728/embedding-a-matplotlib-animation-into-a-tkinter-f ...

谢谢您的支持。
页: [1]
查看完整版本: matplotlib绘制动画,如何在显示图中,直接通过文本框输入 数值给 变量y ?