.. only:: html .. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_gallery_user_interfaces_web_application_server_sgskip.py: ============================================= Embedding in a web application server (Flask) ============================================= When using Matplotlib in a web server it is strongly recommended to not use pyplot (pyplot maintains references to the opened figures to make `~.matplotlib.pyplot.show` work, but this will cause memory leaks unless the figures are properly closed). Since Matplotlib 3.1, one can directly create figures using the `.Figure` constructor and save them to in-memory buffers. In older versions, it was necessary to explicitly instantiate an Agg canvas (see e.g. :doc:`/gallery/user_interfaces/canvasagg`). The following example uses Flask_, but other frameworks work similarly: .. _Flask: https://flask.palletsprojects.com .. code-block:: default import base64 from io import BytesIO from flask import Flask from matplotlib.figure import Figure app = Flask(__name__) @app.route("/") def hello(): # Generate the figure **without using pyplot**. fig = Figure() ax = fig.subplots() ax.plot([1, 2]) # Save it to a temporary buffer. buf = BytesIO() fig.savefig(buf, format="png") # Embed the result in the html output. data = base64.b64encode(buf.getbuffer()).decode("ascii") return f"" Since the above code is a Flask application, it should be run using the `flask command-line tool `_ Assuming that the working directory contains this script: Unix-like systems .. code-block:: console FLASK_APP=web_application_server_sgskip flask run Windows .. code-block:: console set FLASK_APP=web_application_server_sgskip flask run Clickable images for HTML ------------------------- Andrew Dalke of `Dalke Scientific `_ has written a nice `article `_ on how to make html click maps with Matplotlib agg PNGs. We would also like to add this functionality to SVG. If you are interested in contributing to these efforts that would be great. .. _sphx_glr_download_gallery_user_interfaces_web_application_server_sgskip.py: .. only :: html .. container:: sphx-glr-footer :class: sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: web_application_server_sgskip.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: web_application_server_sgskip.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature Keywords: matplotlib code example, codex, python plot, pyplot `Gallery generated by Sphinx-Gallery `_