Incluya la salida del backend del cuaderno% matplotlib como SVG en ipynb

Esta La respuesta de hace unos años muestra cómo puede hacer que Jupyter Notebook cree gráficos como svg. La solución es decirle a InlineBackend que usesvg como salida

import matplotlib.pyplot as plt
%matplotlib inline
%config InlineBackend.figure_format = 'svg'
plt.plot(...)

Esto hará que todas las imágenes estén en formato svg dentro del cuaderno, así como en el archivo ipynb producido; el archivo tendrá una línea como

"data": {  "image/svg+xml": [  "<?xml  .....

en eso.

El problema ahora es que esto no funciona si el%matplotlib notebook Se utiliza el backend.%config InlineBackend no cambia nada para el backend del portátil, por lo tanto, el archivo de salida contiene una imagen PNG

"data": { "text/html": [  "<img src=\"data:image/png;base64,iVBORw0....

Entonces la pregunta es:¿Cómo consigo que el archivo ipynb incluya una versión estática de la trama que se crea con el%matplotlib notebook backend como imagen SVG?

Hay un pequeño comentario de@mark jay desde hace un mes, que quería hacer exactamente lo que me gustaría hacer ahora, pero no hay respuesta o sugerencia para ese comentario.

En mi código, he trazado directamente desde el marco de datos:

%matplotlib notebook
import pandas as pd
df = pd.read_sql(sql1, connection)
...
...
df.plot(subplots=True, kind='bar')

Esto funciona perfectamente bien sin importarmatplotlib.pyplot pero tampoco se puede obligar a crear el gráfico como un svg. Supongo que si el caso base funcionara, podría modificar el código de trazado para que no involucrara pandas o marcos de datos.

Respuestas a la pregunta(2)

Su respuesta a la pregunta