Es bastante fácil hacer un diagrama de tallo 3D con el comando stem3 como se documenta en http://www.mathworks.com/help/techdoc/ref/stem3.html Me pregunto si hay un comando similar en matplotlib? Revisé el documento en línea para la última versión, pero no pude encontrar uno. ¿Alguien puede dar algunas sugerencias?¿Hay una contraparte matplotlib de Matlab "stem3"?
8
A
Respuesta
11
No tengo conocimiento de ningún equivalente directo de stem3
en matplotlib. Sin embargo, no es difícil trazar estas cifras (al menos en su forma básica) usando Line3D s:
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d.art3d as art3d
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection='3d')
N = 100
theta = np.linspace(0, 2*np.pi, N, endpoint=False)
x = np.cos(theta)
y = np.sin(theta)
z = range(N)
for xi, yi, zi in zip(x, y, z):
line=art3d.Line3D(*zip((xi, yi, 0), (xi, yi, zi)), marker='o', markevery=(1, 1))
ax.add_line(line)
ax.set_xlim3d(-1, 1)
ax.set_ylim3d(-1, 1)
ax.set_zlim3d(0, N)
plt.show()
3
Como de unutbu, simplemente con una trama convencional:
In [20]: from mpl_toolkits.mplot3d import Axes3D
In [21]: fig = figure()
In [22]: ax = fig.add_subplot(111, projection='3d')
In [23]: x = [2,4,1,3]
In [24]: y = [3,5,6,7]
In [25]: z = [4,5,6,7]
In [26]: for xx,yy,zz in zip(x,y,z): plot([xx,xx],[yy,yy],[0,zz], '-')
Cuestiones relacionadas
- 1. lsof contraparte para una JVM?
- 2. ¿ES5 tiene una contraparte para __lookupGetter__?
- 3. ¿Hay un matplotlib equivalente al modo de flujo de datos de MATLAB?
- 4. campo de vector 3D en matplotlib
- 5. Gradle contraparte del arquetipo Maven?
- 6. No hay ventana de diagrama en matplotlib
- 7. Contraparte de -application: openURL: sourceApplication: annotation:
- 8. matplotlib para usuario R?
- 9. ¿Cuál es la contraparte addFooterView para GridView?
- 10. ¿Ya hay una biblioteca/analizador YAML para MATLAB?
- 11. Python/Matplotlib - ¿Hay alguna manera de hacer un eje discontinuo?
- 12. ¿Hay una función de Matlab para convertir cualquier estructura de datos en una cadena?
- 13. Guardar una subtrama en matplotlib
- 14. Una herramienta para convertir el código de MATLAB a Python
- 15. ¿Cuál es la contraparte sin firma de ptrdiff_t?
- 16. ¿Hay un operador de splat (o equivalente) en Matlab?
- 17. Escala de aljaba Matplotlib
- 18. ¿Qué alternativas hay para el Editor de MATLAB?
- 19. ¿Hay alguna forma de silenciar la función 'espera' en Matlab
- 20. Contraparte para el atributo NUnit [SetUp()] en Visual Studio
- 21. ¿Hay alguna forma de insertar un espacio de trabajo de MATLAB en una pila?
- 22. Parcelas polares medias o marginales en Matplotlib?
- 23. matplotlib: selecciona interactivamente puntos o ubicaciones?
- 24. matplotlib: Obtenga la matriz de mapa de color
- 25. cómo manejar una asíntota/discontinuidad con Matplotlib
- 26. Guardar una figura matplotlib/networkx sin márgenes
- 27. ¿Hay alguna manera de llamar a una subfunción en el modo de célula en matlab?
- 28. espectáculo pyplot Matplotlib() no funciona, una vez cerrada
- 29. cuál es la contraparte para gl_TexCoord en OpenGL ES 2.0
- 30. Haskell plotting library similar a MATLAB
+1. Esto se ve incluso mejor que el ejemplo en la página de Matlab. ¿Es posible tener las bolitas encima de las líneas también? – EOL
Gracias por proporcionar el ímpetu para seguir esto. Al principio pensé que tendría que superponer un diagrama de dispersión, pero parece que está configurando un [marcador] (http://matplotlib.sourceforge.net/api/artist_api.html#matplotlib.lines.Line2D.set_marker) y usando [ set_markevery (2)] (http://matplotlib.sourceforge.net/api/artist_api.html#matplotlib.lines.Line2D.set_markevery) también puede hacerlo. – unutbu
Excelente respuesta. +1 – ptomato