gpt4 book ai didi

python - 如何在 Streamlit 页面中制作折线图动画

转载 作者:行者123 更新时间:2023-12-02 07:06:36 30 4
gpt4 key购买 nike

我正在处理一个机器学习项目,我想(相对)实时地显示具有适应度函数的图表。

我正在使用 this SO answer 中的代码只要图表显示在 matplotlib 窗口中,它就可以正常工作。一旦我将其添加到页面,它就变成静态图像。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig, ax = plt.subplots()

max_x = 5
max_rand = 10

x = np.arange(0, max_x)
ax.set_ylim(0, max_rand)
line, = ax.plot(x, np.random.randint(0, max_rand, max_x))


def init(): # give a clean slate to start
line.set_ydata([np.nan] * len(x))
return line,


def animate(i): # update the y values (every 1000ms)
line.set_ydata(np.random.randint(0, max_rand, max_x))
return line,

ani = animation.FuncAnimation(
fig, animate, init_func=init, interval=1000, blit=True, save_count=10)

st.pyplot(plt)

知道如何制作图表动画吗?它不一定是 matplotlib。

最佳答案

我收到了我的 answer on the streamlit forum所以我只是在这里复制更新的代码

import matplotlib.pyplot as plt
import numpy as np
import streamlit as st
import time

fig, ax = plt.subplots()

max_x = 5
max_rand = 10

x = np.arange(0, max_x)
ax.set_ylim(0, max_rand)
line, = ax.plot(x, np.random.randint(0, max_rand, max_x))
the_plot = st.pyplot(plt)

def init(): # give a clean slate to start
line.set_ydata([np.nan] * len(x))

def animate(i): # update the y values (every 1000ms)
line.set_ydata(np.random.randint(0, max_rand, max_x))
the_plot.pyplot(plt)

init()
for i in range(100):
animate(i)
time.sleep(0.1)

关于python - 如何在 Streamlit 页面中制作折线图动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58237086/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com