如何在streamlit中绘制gif?

发布于 2025-01-09 08:05:04 字数 769 浏览 0 评论 0原文

我尝试在我的 Streamlit 网站上绘制 gif,但它没有生成任何内容。它不会给出任何错误,它只是将环境保持为空,就好像代码中没有运行任何内容一样。

下面我留下了负责 gif 情节的代码。

graph, = plt.plot([], [], color="gold", markersize=3, label='Tempo: 0 s')
        L = plt.legend(loc=1)

plt.close()  # Não mostra a imagem de fundo

def animate(i):
     lab = 'Tempo: ' + str(round(dt*i * (rs_sun / 2.0) * 3e-5 , -int(math.floor(math.log10(abs(dt*(rs_sun / 2.0)*3e-5)))))) + ' s'
     graph.set_data(x[:i], y[:i])
     L.get_texts()[0].set_text(lab)  # Atualiza a legenda a cada frame
     return graph,

skipframes = int(len(x)/200)
if skipframes == 0:
     skipframes = 1

ani1 = animation.FuncAnimation(fig, animate, frames=range(0,len(x),skipframes), interval=30, blit = True, repeat = False)
        
plt.show()

I tried to plot a gif on my streamlit site, but it doesn’t generate anything. It doesn’t give any error, it just keeps the environment empty as if nothing had been run in the code.

Below I left the piece of my code responsible by the plot of the gif.

graph, = plt.plot([], [], color="gold", markersize=3, label='Tempo: 0 s')
        L = plt.legend(loc=1)

plt.close()  # Não mostra a imagem de fundo

def animate(i):
     lab = 'Tempo: ' + str(round(dt*i * (rs_sun / 2.0) * 3e-5 , -int(math.floor(math.log10(abs(dt*(rs_sun / 2.0)*3e-5)))))) + ' s'
     graph.set_data(x[:i], y[:i])
     L.get_texts()[0].set_text(lab)  # Atualiza a legenda a cada frame
     return graph,

skipframes = int(len(x)/200)
if skipframes == 0:
     skipframes = 1

ani1 = animation.FuncAnimation(fig, animate, frames=range(0,len(x),skipframes), interval=30, blit = True, repeat = False)
        
plt.show()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

耀眼的星火 2025-01-16 08:05:05

Streamlit 仅允许使用 st.image(img) 发送 .jpg 和 .png 图像,但有一种方法可以发布 GIF。

这就是我在我的应用程序上所做的:

file = open(r"path", 'rb')
contents = file.read()
data_url = base64.b64encode(contents).decode('utf-8-sig')
file.close()
st.markdown(f'<img src="data:image/gif;base64,{data_url}>',unsafe_allow_html = True)

Streamlit only allows .jpg and .png images using st.image(img), but there's a way you can post GIF's.

That's how I have done on my app:

file = open(r"path", 'rb')
contents = file.read()
data_url = base64.b64encode(contents).decode('utf-8-sig')
file.close()
st.markdown(f'<img src="data:image/gif;base64,{data_url}>',unsafe_allow_html = True)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文