You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Plotly如何设置点击播放按钮后动画无限循环

Plotly动画点击播放后无限循环的实现方案

你不需要找不存在的run_forever配置项,Plotly的animate方法原生支持循环参数,直接在按钮的args配置中添加loop=True即可实现无限循环效果。

具体修改方法

找到Play按钮的args配置项,在第二个配置字典(和frame、transition、fromcurrent参数平级的位置)添加loop: True即可,不要把该参数写到frame子字典内部,否则配置不会生效。

修改后可直接运行的完整代码如下:

import plotly.graph_objects as go
import numpy as np

def rotate_z(theta):
    w = 3
    return np.cos(theta) * w, np.sin(theta) * w, 1

# 螺旋线坐标定义(补全原示例遗漏的坐标生成逻辑)
t = np.linspace(0, 10, 50)
x = np.cos(t)
y = np.sin(t)
z = t
x_eye, y_eye, z_eye = rotate_z(0)

fig= go.Figure(go.Scatter3d(x=x, y=y, z=z, mode='markers'))


fig.update_layout(
         title='Animation Test',
         width=600,
         height=600,
         scene_camera_eye=dict(x=x_eye, y=y_eye, z=z_eye),
         updatemenus=[dict(type='buttons',
                  showactive=False,
                  y=1,
                  x=0.8,
                  xanchor='left',
                  yanchor='bottom',
                  pad=dict(t=45, r=10),
                  buttons=[dict(label='Play',
                                 method='animate',
                                 args=[None, dict(frame=dict(duration=5, redraw=True), 
                                                             transition=dict(duration=5),
                                                             fromcurrent=True,
                                                             mode='immediate',
                                                             loop=True  # 新增该行即可开启无限循环
                                                            )]
                                            )
                                      ]
                              )
                        ]
)



frames=[]
for t in np.arange(0, 6.26, 0.01):
    xe, ye, ze = rotate_z(-t)
    frames.append(go.Frame(layout=dict(scene_camera_eye=dict(x=xe, y=ye, z=ze))))
fig.frames=frames

fig.show()

补充说明

  • 如果不需要无限循环,只想循环固定次数,把loop的值改为对应正整数即可,比如loop=2就会完整播放2次动画后自动停止。
  • 该参数归类在动画方法的配置项中,没有放在官方文档的显眼示例位置,所以容易被遗漏。

带播放按钮的动画示例效果图

内容的提问来源于stack exchange,提问作者Tobias Jacob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 23:24:15