MEP12: Mejorar Galería y Ejemplos #
Estado #
Progreso
Los cambios iniciales se agregaron en 1.3. La conversión de la galería está en curso. 29 de septiembre de 2015: el último pylab_examples
donde pylab
se importa se convirtió para usar matplotlib.pyplot
y numpy
.
Sucursales y solicitudes de extracción #
#1623, #1924, #2181
PR #2474 muestra un solo ejemplo siendo limpiado y movido a la sección apropiada.
Resumen #
La reorganización de la galería de gráficos de matplotlib simplificaría en gran medida la navegación de la galería. Además, los ejemplos deben limpiarse y simplificarse para mayor claridad.
Descripción detallada #
La galería matplotlib se configuró recientemente para dividir los ejemplos en secciones. Como se discutió en ese PR [ 1 ] , las secciones de ejemplo actuales ( api
, pylab_examples
) no son muy útiles para los usuarios: las nuevas secciones en la galería ayudarían a los usuarios a encontrar ejemplos relevantes.
Estas secciones también guiarían una limpieza de los ejemplos: Inicialmente, todos los ejemplos actuales permanecerían y se enumerarían en sus directorios actuales. Con el tiempo, estos ejemplos podrían limpiarse y trasladarse a una de las nuevas secciones.
Este proceso permite a los usuarios identificar fácilmente los ejemplos que deben limpiarse; es decir, cualquier cosa en los directorios api
y pylab_examples
.
Implementación #
Crear nuevas secciones de galería. [Hecho]
Limpie los ejemplos y muévalos a las nuevas secciones de la galería (en el transcurso de muchas relaciones públicas y con la ayuda de muchos usuarios/desarrolladores). [En progreso]
Secciones de la galería #
El nombre de las secciones es crítico y guiará el esfuerzo de limpieza. Las secciones actuales son:
Líneas, barras y marcadores (más o menos datos 1D)
formas y colecciones
Gráficos estadísticos
Imágenes, contornos y campos.
Gráficos circulares y polares: cosas redondas
Color
Texto, etiquetas y anotaciones
Garrapatas y espinas
Subparcelas, ejes y figuras
Parcelas especiales (p. ej., sankey, radar, tornado)
Showcase (parcelas con ajustes para que tengan calidad de publicación)
secciones separadas para cajas de herramientas (ya existe: 'mplot3d', 'axes_grid', 'units', 'widgets')
Estos nombres son ciertamente objeto de debate. A medida que crezcan estas secciones, debemos reevaluarlas y dividirlas según sea necesario.
Directrices de limpieza #
Los ejemplos actuales en las secciones api
y pylab_examples
de la galería permanecerían en esos directorios hasta que se limpien. Después de la limpieza, se trasladarían a una de las nuevas secciones de la galería descritas anteriormente. La "limpieza" debe implicar:
sphinx-gallery docstrings : un título y una descripción del ejemplo con el siguiente formato, en la parte superior del ejemplo:
""" =============================== Colormaps alter your perception =============================== Here I plot the function .. math:: f(x, y) = \sin(x) + \cos(y) with different colormaps. Look at how colormaps alter your perception! """
Limpiezas de PEP8 (se recomienda encarecidamente ejecutar flake8 o un verificador similar)
El código comentado debe eliminarse.
Reemplace los usos de
pylab
la interfaz conpyplot
(+numpy
, etc.). Ver c25ef1eRetire la línea shebang, por ejemplo:
#!/usr/bin/env python
Usa importaciones consistentes. En particular:
importar numpy como np
importar matplotlib.pyplot como plt
Evite importar funciones específicas de estos módulos (por ejemplo, )
from numpy import sin
Cada ejemplo debe centrarse en una característica específica (excepto los
showcase
ejemplos, que mostrarán gráficos más "pulidos"). Los ajustes no relacionados con esa función deben eliminarse. Ver f7b2217 , e57b5fc y 1458aa8
El uso de pylab
debe ser demostrado/discutido en una página de ayuda dedicada en lugar de los ejemplos de la galería.
Nota: Al mover un ejemplo existente, debe buscar referencias a ese ejemplo. Por ejemplo, la documentación de la API para
axes.py
y pyplot.py
puede usar estos ejemplos para generar gráficos. Utilice su herramienta de búsqueda favorita (p. ej., grep, ack, grin , pss ) para buscar el paquete matplotlib. Ver 2dc9a46
y aa6b410
Sugerencias adicionales #
Proporcione enlaces (en ambos sentidos) entre ejemplos y documentos API para los métodos/objetos utilizados. (número 2222 )
Utilice
plt.subplots
(observe la "s" final) con preferencia sobreplt.subplot
.Cambie el nombre del ejemplo para aclarar su propósito. Por ejemplo, la demostración más básica de
imshow
podría serimshow_demo.py
y una que demuestre diferentes configuraciones de interpolación seríaimshow_demo_interpolation.py
( noimshow_demo2.py
).Divide los ejemplos que intentan hacer demasiado. Ver 5099675 y fc2ab07
Eliminar ejemplos que no muestran nada nuevo.
Algunos ejemplos ejercen características esotéricas para pruebas unitarias. Estos ajustes deben moverse fuera de la galería a un ejemplo en el
unit
directorio ubicado en el directorio raíz del paquete.Agregue títulos de trama para aclarar la intención del ejemplo. Ver bd2b13c
Compatibilidad con versiones anteriores #
Se puede acceder fácilmente al sitio web de cada versión de Matplotlib, por lo que los usuarios que deseen consultar ejemplos antiguos aún pueden hacerlo.