#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]) ) )
вместо этого, и это должно сработать.