From a0ec6888bdd318b9e9bec1b47bcc480ebd668532 Mon Sep 17 00:00:00 2001 From: Rahul Date: Fri, 27 Mar 2026 15:40:22 +0530 Subject: [PATCH 1/2] DOC: Add thumbnails for user_interfaces gallery sgskip examples DOC: Fix thumbnail comment syntax and resize images to 320x224 DOC: Fix image aspect ratio with transparent padding DOC: Retake screenshots in landscape and fix aspect ratio DOC: Move thumbnails to _static and fix thumbnail paths DOC: Add SVG thumbnails to _static DOC: Remove unnecessary blank lines --- doc/_static/canvasagg.png | Bin 0 -> 3908 bytes doc/_static/embedding_in_qt.png | Bin 0 -> 4882 bytes doc/_static/embedding_in_tk.png | Bin 0 -> 5547 bytes doc/_static/embedding_webagg.png | Bin 0 -> 6579 bytes doc/_static/svg_histogram.svg | 301 ++++++++++++++ doc/_static/svg_tooltip.svg | 385 ++++++++++++++++++ doc/_static/toolmanager.png | Bin 0 -> 18903 bytes .../examples/user_interfaces/canvasagg.py | 2 + .../user_interfaces/embedding_in_qt_sgskip.py | 3 + .../user_interfaces/embedding_in_tk_sgskip.py | 1 + .../embedding_webagg_sgskip.py | 2 + .../user_interfaces/images/svg_histogram.svg | 301 ++++++++++++++ .../user_interfaces/images/svg_tooltip.svg | 385 ++++++++++++++++++ .../user_interfaces/svg_histogram_sgskip.py | 1 + .../user_interfaces/svg_tooltip_sgskip.py | 1 + .../user_interfaces/toolmanager_sgskip.py | 1 + 16 files changed, 1383 insertions(+) create mode 100644 doc/_static/canvasagg.png create mode 100644 doc/_static/embedding_in_qt.png create mode 100644 doc/_static/embedding_in_tk.png create mode 100644 doc/_static/embedding_webagg.png create mode 100644 doc/_static/svg_histogram.svg create mode 100644 doc/_static/svg_tooltip.svg create mode 100644 doc/_static/toolmanager.png create mode 100644 galleries/examples/user_interfaces/images/svg_histogram.svg create mode 100644 galleries/examples/user_interfaces/images/svg_tooltip.svg diff --git a/doc/_static/canvasagg.png b/doc/_static/canvasagg.png new file mode 100644 index 0000000000000000000000000000000000000000..2255274d3011844a6ee8341a56baac0d506bf35e GIT binary patch literal 3908 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 Ef+0&t%F6Zi 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 literal 0 HcmV?d00001 diff --git a/doc/_static/embedding_webagg.png b/doc/_static/embedding_webagg.png new file mode 100644 index 0000000000000000000000000000000000000000..2ad318ce6822fe0cec101dddc5728a01157eb598 GIT binary patch literal 6579 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 literal 0 HcmV?d00001 diff --git a/doc/_static/svg_histogram.svg b/doc/_static/svg_histogram.svg new file mode 100644 index 000000000000..9e9df77aef15 --- /dev/null +++ b/doc/_static/svg_histogram.svg @@ -0,0 +1,301 @@ + + + + + + 2026-03-25T12:33:41.331892 + image/svg+xml + + + Matplotlib v3.10.0, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + −3 + + + + + + + + + + −2 + + + + + + + + + + −1 + + + + + + + + + + 0 + + + + + + + + + + 1 + + + + + + + + + + 2 + + + + + + + + + + 3 + + + + + + + + + + + + + + + 0 + + + + + + + + + + 5 + + + + + + + + + + 10 + + + + + + + + + + 15 + + + + + + + + + + 20 + + + + + + + + + + 25 + + + + + + + + + + + + + + + + + From a web browser, click on the legend + marker to toggle the corresponding histogram. + + + + + + + Rabbits + + + + + + Frogs + + + + + + + + + + \ No newline at end of file diff --git a/doc/_static/svg_tooltip.svg b/doc/_static/svg_tooltip.svg new file mode 100644 index 000000000000..dd11c2d7782e --- /dev/null +++ b/doc/_static/svg_tooltip.svg @@ -0,0 +1,385 @@ + + + + + + 2026-03-25T12:36:20.674869 + image/svg+xml + + + Matplotlib v3.10.0, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/_static/toolmanager.png b/doc/_static/toolmanager.png new file mode 100644 index 0000000000000000000000000000000000000000..14aeba48995d91b048e7bc566bfc622b94309373 GIT binary patch literal 18903 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 + + + + + 2026-03-25T12:33:41.331892 + image/svg+xml + + + Matplotlib v3.10.0, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + −3 + + + + + + + + + + −2 + + + + + + + + + + −1 + + + + + + + + + + 0 + + + + + + + + + + 1 + + + + + + + + + + 2 + + + + + + + + + + 3 + + + + + + + + + + + + + + + 0 + + + + + + + + + + 5 + + + + + + + + + + 10 + + + + + + + + + + 15 + + + + + + + + + + 20 + + + + + + + + + + 25 + + + + + + + + + + + + + + + + + From a web browser, click on the legend + marker to toggle the corresponding histogram. + + + + + + + Rabbits + + + + + + Frogs + + + + + + + + + + \ No newline at end of file diff --git a/galleries/examples/user_interfaces/images/svg_tooltip.svg b/galleries/examples/user_interfaces/images/svg_tooltip.svg new file mode 100644 index 000000000000..dd11c2d7782e --- /dev/null +++ b/galleries/examples/user_interfaces/images/svg_tooltip.svg @@ -0,0 +1,385 @@ + + + + + + 2026-03-25T12:36:20.674869 + image/svg+xml + + + Matplotlib v3.10.0, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/galleries/examples/user_interfaces/svg_histogram_sgskip.py b/galleries/examples/user_interfaces/svg_histogram_sgskip.py index 7a484d998e69..de114cebfbda 100644 --- a/galleries/examples/user_interfaces/svg_histogram_sgskip.py +++ b/galleries/examples/user_interfaces/svg_histogram_sgskip.py @@ -32,6 +32,7 @@ Author: david.huard@gmail.com """ +# sphinx_gallery_thumbnail_path = '_static/svg_histogram.svg' from io import BytesIO diff --git a/galleries/examples/user_interfaces/svg_tooltip_sgskip.py b/galleries/examples/user_interfaces/svg_tooltip_sgskip.py index 7068431b45e8..86a8088adf04 100644 --- a/galleries/examples/user_interfaces/svg_tooltip_sgskip.py +++ b/galleries/examples/user_interfaces/svg_tooltip_sgskip.py @@ -21,6 +21,7 @@ :author: David Huard """ +# sphinx_gallery_thumbnail_path = '_static/svg_tooltip.svg' from io import BytesIO diff --git a/galleries/examples/user_interfaces/toolmanager_sgskip.py b/galleries/examples/user_interfaces/toolmanager_sgskip.py index 14fc671a5301..2e03c5af17c1 100644 --- a/galleries/examples/user_interfaces/toolmanager_sgskip.py +++ b/galleries/examples/user_interfaces/toolmanager_sgskip.py @@ -12,6 +12,7 @@ using `matplotlib.backend_managers.ToolManager`. """ +# sphinx_gallery_thumbnail_path = '_static/toolmanager.png' import matplotlib.pyplot as plt From ea33fae6978c90d27528fa26386e0b7973267be2 Mon Sep 17 00:00:00 2001 From: Tim Hoffmann <2836374+timhoffm@users.noreply.github.com> Date: Wed, 22 Apr 2026 15:29:10 +0200 Subject: [PATCH 2/2] Remove extra empty lines Co-authored-by: Tim Hoffmann <2836374+timhoffm@users.noreply.github.com> --- galleries/examples/user_interfaces/canvasagg.py | 1 - galleries/examples/user_interfaces/embedding_in_qt_sgskip.py | 2 -- galleries/examples/user_interfaces/embedding_webagg_sgskip.py | 1 - 3 files changed, 4 deletions(-) diff --git a/galleries/examples/user_interfaces/canvasagg.py b/galleries/examples/user_interfaces/canvasagg.py index 2c5cc95a3f29..3d7d7c503c30 100644 --- a/galleries/examples/user_interfaces/canvasagg.py +++ b/galleries/examples/user_interfaces/canvasagg.py @@ -3,7 +3,6 @@ CanvasAgg demo ============== - This example shows how to use the agg backend directly to create images, which may be of use to web application developers who want full control over their code without using the pyplot interface to manage figures, figure closing etc. diff --git a/galleries/examples/user_interfaces/embedding_in_qt_sgskip.py b/galleries/examples/user_interfaces/embedding_in_qt_sgskip.py index 244b7a12c6d2..c19d24ff163d 100644 --- a/galleries/examples/user_interfaces/embedding_in_qt_sgskip.py +++ b/galleries/examples/user_interfaces/embedding_in_qt_sgskip.py @@ -7,8 +7,6 @@ equally well using any Qt binding (PyQt6, PySide6, PyQt5, PySide2). The binding can be selected by setting the :envvar:`QT_API` environment variable to the binding name, or by first importing it. - - """ # sphinx_gallery_thumbnail_path = '_static/embedding_in_qt.png' diff --git a/galleries/examples/user_interfaces/embedding_webagg_sgskip.py b/galleries/examples/user_interfaces/embedding_webagg_sgskip.py index 287b8971d9e0..50e245f3db46 100644 --- a/galleries/examples/user_interfaces/embedding_webagg_sgskip.py +++ b/galleries/examples/user_interfaces/embedding_webagg_sgskip.py @@ -3,7 +3,6 @@ Embedding WebAgg ================ - This example demonstrates how to embed Matplotlib WebAgg interactive plotting in your own web application and framework. It is not necessary to do all this if you merely want to display a plot in a browser or use Matplotlib's built-in