backend_qtagg, #backend_qtcairo

NOTA Estos backends no se documentan (automáticamente) aquí, para evitar agregar una dependencia a la creación de los documentos.

Enlaces Qt #

Actualmente hay 2 versiones de Qt compatibles activamente, Qt5 y Qt6, y dos enlaces de Python compatibles por versión: PyQt5 y PySide2 para Qt5 y PyQt6 y PySide6 para Qt6 [ 1 ] . Si bien PyQt y Qt para Python (también conocido como PySide) reflejan fielmente la API de C++ subyacente que están empaquetando, no son reemplazos directos entre sí [ 2 ] . Para dar cuenta de esto, Matplotlib tiene una capa interna de compatibilidad de API en matplotlib.backends.qt_compatla que cubre nuestras necesidades. A pesar de ser un módulo público, no consideramos que sea una API estable para el usuario y puede cambiar sin previo aviso [ 3 ] .

Anteriormente, los backends de Qt de Matplotlib tenían el número de versión de Qt en el nombre, tanto en el módulo como en el rcParams["backend"]valor (por ejemplo, matplotlib.backends.backend_qt4aggy matplotlib.backends.backend_qt5agg). Sin embargo, como parte de agregar soporte para Qt6, pudimos admitir tanto Qt5 como Qt6 con una sola implementación con toda la versión de Qt y el soporte de enlace manejado en qt_compat. La mayoría del código Qt agnóstico del renderizador está ahora matplotlib.backends.backend_qtcon especialización para AGG en backend_qtaggy cairo en backend_qtcairo.

El enlace se selecciona en tiempo de ejecución en función de los enlaces que ya se han importado (verificando el QtCoresubpaquete), luego mediante elQT_API variable de entorno, y finalmente por el rcParams["backend"]. En todos los casos en que necesitamos buscar, el orden es PyQt6, PySide6, PyQt5, PySide2. Consulte ¿Cómo selecciono la implementación de Qt? para instrucciones de uso.

Se proporcionan backend_qt5, backend_qt5aggy backend_qt5cairofuerzan el uso de un enlace Qt5 para compatibilidad con versiones anteriores. Se desaconseja su uso (pero no está en desuso) y backend_qt, en su lugar, se debe preferir backend_qtagg, o . backend_qtcairoSin embargo, estos módulos no quedarán obsoletos hasta que eliminemos el soporte para Qt5.