Сюжетно игнорирует автоматическое изменение в анимации

#python #plotly #plotly-dash

Вопрос:

В настоящее время я пытаюсь создать анимацию в сюжете, используя массивы Numpy. Создание отдельных сюжетов работает хорошо, однако, когда я пытаюсь добавить отдельные сюжеты в качестве кадров для анимации, диапазон (как автоматический, так и заданные пределы) полностью игнорируется. Вот код:

 def animationTest(fields):  fig = go.Figure(  data=[  go.Scatter3d()  ],  layout=go.Layout(  xaxis=dict(  range=[-1.,1.],  autorange=False  ),  yaxis=dict(  range=[-1.,1.],  autorange=False  ),  updatemenus=[  dict(  type='buttons',  buttons=[  dict(  label='Play',  method='animate',  args=[None]  )  ]  )  ]  ),  frames=[  go.Frame(  data=[  go.Scatter3d(  x=it.x,  y=it.y,  z=it.z,  line=dict(color='red',width=2)  )  ],  layout=go.Layout(  xaxis=dict(  range=[-1.,1.],  autorange=False  ),  yaxis=dict(  range=[-1.,1.],  autorange=False  )   )  )  for it in its]  )  fig.show()  

В данном случае its это список объектов, где каждый объект it имеет массив numpy из 501 числового значения для каждого атрибута x,y,z соответственно.

Может ли кто-нибудь понять, почему автонастройка дана на ходу.Объект Layout() игнорируется? Большое спасибо.

Ответ №1:

С тех пор я разобрался в проблеме — приведенный выше код:

 go.Layout(  xaxis=dict(range=[-1.,1.]) )  

это синтаксис для 2D-графиков. Чтобы настроить пределы осей для 3D-графиков, используйте:

 go.layout(  scene=dict(  xaxis=dict(range=[-1,1])  ) )  

вместо этого, и это должно сработать.