Estoy aprendiendo a usar mplot3d para producir buenas parcelas de datos en 3D y estoy muy feliz hasta ahora. Lo que estoy tratando de hacer en este momento es una pequeña animación de una superficie giratoria. Para ese propósito, necesito establecer una posición de cámara para la proyección 3D. Supongo que esto debe ser posible ya que una superficie se puede girar con el mouse cuando se usa matplotlib de forma interactiva. Pero, ¿cómo puedo hacer esto desde un script? Encontré muchas transformaciones en mpl_toolkits.mplot3d.proj3d pero no pude encontrar cómo usarlas para mi propósito y no encontré ningún ejemplo de lo que estoy tratando de hacer.
python
matplotlib
mplot3d
Andreas Bleuler
fuente
fuente
%matplotlib notebook
Respuestas:
Por "posición de cámara", parece que desea ajustar la elevación y el ángulo de acimut que utiliza para ver el diagrama 3D. Puedes configurar esto con
ax.view_init
. Utilicé el siguiente script para crear primero la trama, luego determiné una buena elevación, oelev
desde la cual ver mi trama. Luego ajusté el ángulo de acimut oazim
, para variar los 360 grados completos alrededor de mi gráfico, guardando la figura en cada caso (y observando qué ángulo de acimut guardaba el gráfico). Para una panorámica de cámara más complicada, puede ajustar tanto la elevación como el ángulo para lograr el efecto deseado.fuente
ax.elev
yax.azim
. También podría haber escritoax.azim = ii
o inclusoax.azim += 1
lograr el mismo efecto.Lo que sería útil sería aplicar la posición de la cámara a una nueva trama. Así que trazo, luego muevo la trama con el mouse cambiando la distancia. Luego intente replicar la vista, incluida la distancia en otra parcela. Me parece que axx.ax.get_axes () me da un objeto con los viejos .azim y .elev.
EN PITÓN ...
Más tarde gráfico 3d ...
EDITAR 1 ... OK, la posición de la cámara es la forma incorrecta de pensar con respecto al valor .dist. Se monta sobre todo como una especie de multiplicador escalar hackey para todo el gráfico.
Esto funciona para la ampliación / zoom de la vista:
Gráfico posterior ...
fuente