If I try to set the camera 'up' direction to y (or x), nothing actually happens.
layout = {
'scene': {
'camera': {
'up': {'x': 0, 'y': 1, 'z': 0}
}
}
}
fig = go.Figure(data=data, layout=layout)
iplot(fig)
the plot produced still has the default z-axis as the 'up' direction.
I have noticed that during an animation or restyle, the graph sometimes briefly flips and obeys the camera 'up' direction, but then reverts to the default immediately
I would also like to use the camera up attribute, but find it is not working. Can this issue be resolved?
To set the camera up direction you need to set the layout.scene.dragmode property to 'orbit', rather than the default value of 'turntable'. The turntable drag mode forces z to be up by definition, so this is overriding the specified up vector
layout = {
'scene': {
'camera': {
'up': {'x': 0, 'y': 1, 'z': 0}
},
'dragmode': 'orbit'
}
}
data = [go.Scatter3d(x=[0.5, 0.5], y=[1, 1], z=[0, 1])]
fig = go.Figure(data=data, layout=layout)
iplot(fig)

Awesome @jonmmease thank you so much for this tip!
I've been searching for at least 2 hours the correct way to use this camera setup. So happy it now works so fine! :)
Btw not very clear also how the eye dict works. What are the units or what do they exactly refer to?
+1 regarding @virgile-hogman 's question: What are the units and what do they refer to?
I need a specific point of view in my 3D plot (with projection perspective). However, the units don't relate to the 3D coordinates, nor is center (0, 0, 0) the actual center.
Most helpful comment
To set the camera up direction you need to set the
layout.scene.dragmodeproperty to'orbit', rather than the default value of'turntable'. The turntable drag mode forceszto be up by definition, so this is overriding the specified up vector