From 07656979b412d2d691e4b8ed575cd7ddc334424b Mon Sep 17 00:00:00 2001 From: Jerome Villegas Date: Fri, 1 Aug 2025 15:59:13 -0700 Subject: [PATCH 01/12] New logo guide doc and updated index --- doc/project/index.rst | 1 + doc/project/logo_usage_guidelines.rst | 64 +++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 doc/project/logo_usage_guidelines.rst diff --git a/doc/project/index.rst b/doc/project/index.rst index c7e230339dc9..6baefc2a1d31 100644 --- a/doc/project/index.rst +++ b/doc/project/index.rst @@ -11,5 +11,6 @@ Project information history.rst Code of Conduct citing.rst + Logo Usage Guidelines license.rst credits.rst diff --git a/doc/project/logo_usage_guidelines.rst b/doc/project/logo_usage_guidelines.rst new file mode 100644 index 000000000000..5cc57e34c987 --- /dev/null +++ b/doc/project/logo_usage_guidelines.rst @@ -0,0 +1,64 @@ +.. redirect-from:: /logo_usage_guidelines +.. redirect-from:: /users/project/logo_usage_guidelines + +.. _logo_usage_guidelines: + +Logo Usage Guidelines +===================== + +The Matplotlib logo is available both with and without text. Use the official logo below to reference Matplotlib as needed. See the :ref:`license` or :ref:`citing_matplotlib` pages for acknowledgement in any scientific publication if used. + + +Logo +---- + +View the :doc:`/gallery/misc/logos2` to see the code to generate the logo using Matplotlib. + +Use the logo with the following guidelines. + +* Example +* Example 2 +* Example 3 + +Colors +------ + +The official colors below show both hex code and RGB values for Matplotlib. + ++--------+-------------+-------------------+ +| Color | Hex Code | RGB | ++========+=============+===================+ +| Blue | ``#285479`` | ``40, 84, 121`` | ++--------+-------------+-------------------+ +| Red | ``#F2AD7A`` | ``242, 173, 122`` | ++--------+-------------+-------------------+ +| Green | ``#E6FA93`` | ``230, 250, 147`` | ++--------+-------------+-------------------+ +| Gold | ``#F9DF81`` | ``249, 223, 129`` | ++--------+-------------+-------------------+ +| Mint | ``#C6FDBB`` | ``198, 253, 187`` | ++--------+-------------+-------------------+ +| Danube | ``#7188C9`` | ``113, 136, 201`` | ++--------+-------------+-------------------+ +| Cyan | ``#96E8D2`` | ``150, 232, 210`` | ++--------+-------------+-------------------+ + + ++--------+----------+-----------------+ +| Color | Hex Code | RGB | ++========+==========+=================+ +| Blue | ``#285479`` | ``40, 84, 121`` | ++--------+----------+-----------------+ +| Red | ``#F2AD7A`` | ``242, 173, 122`` | ++--------+----------+-----------------+ +| Green | ``#E6FA93`` | ``230, 250, 147`` | ++--------+----------+-----------------+ +| Gold | ``#F9DF81`` | ``249, 223, 129`` | ++--------+----------+-----------------+ +| Mint | ``#C6FDBB`` | ``198, 253, 187`` | ++--------+----------+-----------------+ +| Danube | ``#7188C9`` | ``113, 136, 201`` | ++--------+----------+-----------------+ +| Cyan | ``#96E8D2`` | ``150, 232, 210`` | ++--------+----------+-----------------+ + From 6b96607dc887e4129ddd44d06aad028a065b3c61 Mon Sep 17 00:00:00 2001 From: Jerome Villegas Date: Fri, 1 Aug 2025 16:01:23 -0700 Subject: [PATCH 02/12] remove broken rst table --- doc/project/logo_usage_guidelines.rst | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/doc/project/logo_usage_guidelines.rst b/doc/project/logo_usage_guidelines.rst index 5cc57e34c987..8c8779ff616e 100644 --- a/doc/project/logo_usage_guidelines.rst +++ b/doc/project/logo_usage_guidelines.rst @@ -42,23 +42,3 @@ The official colors below show both hex code and RGB values for Matplotlib. +--------+-------------+-------------------+ | Cyan | ``#96E8D2`` | ``150, 232, 210`` | +--------+-------------+-------------------+ - - -+--------+----------+-----------------+ -| Color | Hex Code | RGB | -+========+==========+=================+ -| Blue | ``#285479`` | ``40, 84, 121`` | -+--------+----------+-----------------+ -| Red | ``#F2AD7A`` | ``242, 173, 122`` | -+--------+----------+-----------------+ -| Green | ``#E6FA93`` | ``230, 250, 147`` | -+--------+----------+-----------------+ -| Gold | ``#F9DF81`` | ``249, 223, 129`` | -+--------+----------+-----------------+ -| Mint | ``#C6FDBB`` | ``198, 253, 187`` | -+--------+----------+-----------------+ -| Danube | ``#7188C9`` | ``113, 136, 201`` | -+--------+----------+-----------------+ -| Cyan | ``#96E8D2`` | ``150, 232, 210`` | -+--------+----------+-----------------+ - From dfa930b90bbcdff2d2414da153127f640d7a0425 Mon Sep 17 00:00:00 2001 From: Tim Hoffmann <2836374+timhoffm@users.noreply.github.com> Date: Tue, 22 Apr 2025 11:59:00 +0200 Subject: [PATCH 03/12] ENH: ax.add_collection(..., autolim=True) updates view limits This makes explicit calls to `autoscale_view()` or `_request_autoscale_view()` unnecessary. 3D Axes have a special `auto_scale_xyz()`, also there's a mixture of `add_collection()` and `add_collection3d()`. This needs separate sorting . I've added a private value `autolim="_datalim_only"` to keep the behavior for 3D Axes unchanged for now. That will be resolved by a follow-up PR. I believe it's getting too complicated if we fold this into the 2D change. --- .../next_api_changes/behavior/29958-TH.rst | 8 ++++++++ .../multicolored_line.py | 1 - .../shapes_and_collections/collections.py | 16 +++++---------- .../ellipse_collection.py | 2 -- galleries/users_explain/axes/autoscale.py | 20 ------------------- lib/matplotlib/axes/_axes.py | 5 ----- lib/matplotlib/axes/_base.py | 19 ++++++++++++++++++ lib/matplotlib/axes/_base.pyi | 2 +- lib/matplotlib/colorbar.py | 4 ++-- lib/matplotlib/tests/test_backend_ps.py | 6 +++++- lib/matplotlib/tests/test_collections.py | 2 -- lib/matplotlib/tests/test_patches.py | 4 +++- lib/matplotlib/tri/_tripcolor.py | 4 +++- lib/mpl_toolkits/mplot3d/axes3d.py | 20 +++++++++---------- lib/mpl_toolkits/mplot3d/tests/test_art3d.py | 2 +- lib/mpl_toolkits/mplot3d/tests/test_axes3d.py | 2 +- .../mplot3d/tests/test_legend3d.py | 6 +++--- 17 files changed, 61 insertions(+), 62 deletions(-) create mode 100644 doc/api/next_api_changes/behavior/29958-TH.rst diff --git a/doc/api/next_api_changes/behavior/29958-TH.rst b/doc/api/next_api_changes/behavior/29958-TH.rst new file mode 100644 index 000000000000..cacaf2bac612 --- /dev/null +++ b/doc/api/next_api_changes/behavior/29958-TH.rst @@ -0,0 +1,8 @@ +``Axes.add_collection(..., autolim=True)`` updates view limits +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``Axes.add_collection(..., autolim=True)`` has so far only updated the data limits. +Users needed to additionally call `.Axes.autoscale_view` to update the view limits. +View limits are now updated as well if ``autolim=True``, using a lazy internal +update mechanism, so that the costs only apply once also if you add multiple +collections. diff --git a/galleries/examples/lines_bars_and_markers/multicolored_line.py b/galleries/examples/lines_bars_and_markers/multicolored_line.py index 3a71225d0112..a643b2de160c 100644 --- a/galleries/examples/lines_bars_and_markers/multicolored_line.py +++ b/galleries/examples/lines_bars_and_markers/multicolored_line.py @@ -72,7 +72,6 @@ def colored_line(x, y, c, ax=None, **lc_kwargs): # Plot the line collection to the axes ax = ax or plt.gca() ax.add_collection(lc) - ax.autoscale_view() return lc diff --git a/galleries/examples/shapes_and_collections/collections.py b/galleries/examples/shapes_and_collections/collections.py index 1f60afda1c5f..032be40317c0 100644 --- a/galleries/examples/shapes_and_collections/collections.py +++ b/galleries/examples/shapes_and_collections/collections.py @@ -1,7 +1,7 @@ """ -========================================================= -Line, Poly and RegularPoly Collection with autoscaling -========================================================= +===================================== +Line, Poly and RegularPoly Collection +===================================== For the first two subplots, we will use spirals. Their size will be set in plot units, not data units. Their positions will be set in data units by using @@ -38,7 +38,7 @@ # Make some offsets xyo = rs.randn(npts, 2) -# Make a list of colors cycling through the default series. +# Make a list of colors from the default color cycle. colors = plt.rcParams['axes.prop_cycle'].by_key()['color'] fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2) @@ -59,14 +59,12 @@ # but it is good enough to generate a plot that you can use # as a starting point. If you know beforehand the range of # x and y that you want to show, it is better to set them -# explicitly, leave out the *autolim* keyword argument (or set it to False), -# and omit the 'ax1.autoscale_view()' call below. +# explicitly, set the *autolim* keyword argument to False. # Make a transform for the line segments such that their size is # given in points: col.set_color(colors) -ax1.autoscale_view() # See comment above, after ax1.add_collection. ax1.set_title('LineCollection using offsets') @@ -79,7 +77,6 @@ col.set_color(colors) -ax2.autoscale_view() ax2.set_title('PolyCollection using offsets') # 7-sided regular polygons @@ -90,7 +87,6 @@ col.set_transform(trans) # the points to pixels transform ax3.add_collection(col, autolim=True) col.set_color(colors) -ax3.autoscale_view() ax3.set_title('RegularPolyCollection using offsets') @@ -114,7 +110,6 @@ col = collections.LineCollection(segs, offsets=offs) ax4.add_collection(col, autolim=True) col.set_color(colors) -ax4.autoscale_view() ax4.set_title('Successive data offsets') ax4.set_xlabel('Zonal velocity component (m/s)') ax4.set_ylabel('Depth (m)') @@ -136,6 +131,5 @@ # - `matplotlib.collections.LineCollection` # - `matplotlib.collections.RegularPolyCollection` # - `matplotlib.axes.Axes.add_collection` -# - `matplotlib.axes.Axes.autoscale_view` # - `matplotlib.transforms.Affine2D` # - `matplotlib.transforms.Affine2D.scale` diff --git a/galleries/examples/shapes_and_collections/ellipse_collection.py b/galleries/examples/shapes_and_collections/ellipse_collection.py index 7118e5f7abf2..39f0cb7dcb6a 100644 --- a/galleries/examples/shapes_and_collections/ellipse_collection.py +++ b/galleries/examples/shapes_and_collections/ellipse_collection.py @@ -30,7 +30,6 @@ offset_transform=ax.transData) ec.set_array((X + Y).ravel()) ax.add_collection(ec) -ax.autoscale_view() ax.set_xlabel('X') ax.set_ylabel('y') cbar = plt.colorbar(ec) @@ -47,5 +46,4 @@ # - `matplotlib.collections` # - `matplotlib.collections.EllipseCollection` # - `matplotlib.axes.Axes.add_collection` -# - `matplotlib.axes.Axes.autoscale_view` # - `matplotlib.cm.ScalarMappable.set_array` diff --git a/galleries/users_explain/axes/autoscale.py b/galleries/users_explain/axes/autoscale.py index df1fbbc8aea8..337960302c38 100644 --- a/galleries/users_explain/axes/autoscale.py +++ b/galleries/users_explain/axes/autoscale.py @@ -18,7 +18,6 @@ import matplotlib.pyplot as plt import numpy as np -import matplotlib as mpl x = np.linspace(-2 * np.pi, 2 * np.pi, 100) y = np.sinc(x) @@ -159,22 +158,3 @@ ax.autoscale(enable=None, axis="x", tight=True) print(ax.margins()) - -# %% -# Working with collections -# ------------------------ -# -# Autoscale works out of the box for all lines, patches, and images added to -# the Axes. One of the artists that it won't work with is a `.Collection`. -# After adding a collection to the Axes, one has to manually trigger the -# `~matplotlib.axes.Axes.autoscale_view()` to recalculate -# axes limits. - -fig, ax = plt.subplots() -collection = mpl.collections.StarPolygonCollection( - 5, rotation=0, sizes=(250,), # five point star, zero angle, size 250px - offsets=np.column_stack([x, y]), # Set the positions - offset_transform=ax.transData, # Propagate transformations of the Axes -) -ax.add_collection(collection) -ax.autoscale_view() diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index bd736b9ff36a..b71f26b76d38 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -3044,7 +3044,6 @@ def broken_barh(self, xranges, yrange, align="bottom", **kwargs): col = mcoll.PolyCollection(np.array(vertices), **kwargs) self.add_collection(col, autolim=True) - self._request_autoscale_view() return col @@ -5353,7 +5352,6 @@ def scatter(self, x, y, s=None, c=None, marker=None, cmap=None, norm=None, self.set_ymargin(0.05) self.add_collection(collection) - self._request_autoscale_view() return collection @@ -5824,7 +5822,6 @@ def quiver(self, *args, **kwargs): args = self._quiver_units(args, kwargs) q = mquiver.Quiver(self, *args, **kwargs) self.add_collection(q, autolim=True) - self._request_autoscale_view() return q # args can be some combination of X, Y, U, V, C and all should be replaced @@ -5836,7 +5833,6 @@ def barbs(self, *args, **kwargs): args = self._quiver_units(args, kwargs) b = mquiver.Barbs(self, *args, **kwargs) self.add_collection(b, autolim=True) - self._request_autoscale_view() return b # Uses a custom implementation of data-kwarg handling in @@ -5996,7 +5992,6 @@ def _fill_between_x_or_y( where=where, interpolate=interpolate, step=step, **kwargs) self.add_collection(collection) - self._request_autoscale_view() return collection def _fill_between_process_units(self, ind_dir, dep_dir, ind, dep1, dep2, **kwargs): diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index c3f80abe491e..fa628b3f34e0 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -2336,6 +2336,23 @@ def add_child_axes(self, ax): def add_collection(self, collection, autolim=True): """ Add a `.Collection` to the Axes; return the collection. + + Parameters + ---------- + collection : `.Collection` + The collection to add. + autolim : bool + Whether to update data and view limits. + + .. versionchanged:: 3.11 + + This now also updates the view limits, making explicit + calls to `~.Axes.autoscale_view` unnecessary. + + As an implementation detail, the value "_datalim_only" is + supported to smooth the internal transition from pre-3.11 + behavior. This is not a public interface and will be removed + again in the future. """ _api.check_isinstance(mcoll.Collection, collection=collection) if not collection.get_label(): @@ -2371,6 +2388,8 @@ def add_collection(self, collection, autolim=True): updatex=x_is_data or ox_is_data, updatey=y_is_data or oy_is_data, ) + if autolim != "_datalim_only": + self._request_autoscale_view() self.stale = True return collection diff --git a/lib/matplotlib/axes/_base.pyi b/lib/matplotlib/axes/_base.pyi index cb538a49172a..5a5225eb8ba1 100644 --- a/lib/matplotlib/axes/_base.pyi +++ b/lib/matplotlib/axes/_base.pyi @@ -234,7 +234,7 @@ class _AxesBase(martist.Artist): def add_artist(self, a: Artist) -> Artist: ... def add_child_axes(self, ax: _AxesBase) -> _AxesBase: ... def add_collection( - self, collection: Collection, autolim: bool = ... + self, collection: Collection, autolim: bool | Literal["_datalim_only"] = ... ) -> Collection: ... def add_image(self, image: AxesImage) -> AxesImage: ... def add_line(self, line: Line2D) -> Line2D: ... diff --git a/lib/matplotlib/colorbar.py b/lib/matplotlib/colorbar.py index 4348f02cfc34..2a11477ed1c2 100644 --- a/lib/matplotlib/colorbar.py +++ b/lib/matplotlib/colorbar.py @@ -373,7 +373,7 @@ def __init__( colors=[mpl.rcParams['axes.edgecolor']], linewidths=[0.5 * mpl.rcParams['axes.linewidth']], clip_on=False) - self.ax.add_collection(self.dividers) + self.ax.add_collection(self.dividers, autolim=False) self._locator = None self._minorlocator = None @@ -807,7 +807,7 @@ def add_lines(self, *args, **kwargs): xy = self.ax.transAxes.inverted().transform(inches.transform(xy)) col.set_clip_path(mpath.Path(xy, closed=True), self.ax.transAxes) - self.ax.add_collection(col) + self.ax.add_collection(col, autolim=False) self.stale = True def update_ticks(self): diff --git a/lib/matplotlib/tests/test_backend_ps.py b/lib/matplotlib/tests/test_backend_ps.py index f5ec85005079..9859a286e5fd 100644 --- a/lib/matplotlib/tests/test_backend_ps.py +++ b/lib/matplotlib/tests/test_backend_ps.py @@ -354,7 +354,11 @@ def test_path_collection(): sizes = [0.02, 0.04] pc = mcollections.PathCollection(paths, sizes, zorder=-1, facecolors='yellow', offsets=offsets) - ax.add_collection(pc) + # Note: autolim=False is used to keep the view limits as is for now, + # given the updated behavior of autolim=True to also update the view + # limits. It may be reasonable to test the limits handling in the future + # as well. This will require regenerating the reference image. + ax.add_collection(pc, autolim=False) ax.set_xlim(0, 1) diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py index 53a6f45668fa..e6e36da29aa8 100644 --- a/lib/matplotlib/tests/test_collections.py +++ b/lib/matplotlib/tests/test_collections.py @@ -408,7 +408,6 @@ def test_EllipseCollection(): ww, hh, aa, units='x', offsets=XY, offset_transform=ax.transData, facecolors='none') ax.add_collection(ec) - ax.autoscale_view() def test_EllipseCollection_setter_getter(): @@ -526,7 +525,6 @@ def test_regularpolycollection_rotate(): 4, sizes=(100,), rotation=alpha, offsets=[xy], offset_transform=ax.transData) ax.add_collection(col, autolim=True) - ax.autoscale_view() @image_comparison(['regularpolycollection_scale.png'], remove_text=True) diff --git a/lib/matplotlib/tests/test_patches.py b/lib/matplotlib/tests/test_patches.py index d69a9dad4337..ed608eebb6a7 100644 --- a/lib/matplotlib/tests/test_patches.py +++ b/lib/matplotlib/tests/test_patches.py @@ -941,7 +941,9 @@ def test_arc_in_collection(fig_test, fig_ref): arc2 = Arc([.5, .5], .5, 1, theta1=0, theta2=60, angle=20) col = mcollections.PatchCollection(patches=[arc2], facecolors='none', edgecolors='k') - fig_ref.subplots().add_patch(arc1) + ax_ref = fig_ref.subplots() + ax_ref.add_patch(arc1) + ax_ref.autoscale_view() fig_test.subplots().add_collection(col) diff --git a/lib/matplotlib/tri/_tripcolor.py b/lib/matplotlib/tri/_tripcolor.py index f3c26b0b25ff..5a5b24522d17 100644 --- a/lib/matplotlib/tri/_tripcolor.py +++ b/lib/matplotlib/tri/_tripcolor.py @@ -163,5 +163,7 @@ def tripcolor(ax, *args, alpha=1.0, norm=None, cmap=None, vmin=None, corners = (minx, miny), (maxx, maxy) ax.update_datalim(corners) ax.autoscale_view() - ax.add_collection(collection) + # TODO: check whether the above explicit limit handling can be + # replaced by autolim=True + ax.add_collection(collection, autolim=False) return collection diff --git a/lib/mpl_toolkits/mplot3d/axes3d.py b/lib/mpl_toolkits/mplot3d/axes3d.py index 55b204022fb9..9576b299ab72 100644 --- a/lib/mpl_toolkits/mplot3d/axes3d.py +++ b/lib/mpl_toolkits/mplot3d/axes3d.py @@ -2133,7 +2133,7 @@ def fill_between(self, x1, y1, z1, x2, y2, z2, *, polyc = art3d.Poly3DCollection(polys, facecolors=facecolors, shade=shade, axlim_clip=axlim_clip, **kwargs) - self.add_collection(polyc) + self.add_collection(polyc, autolim="_datalim_only") self.auto_scale_xyz([x1, x2], [y1, y2], [z1, z2], had_data) return polyc @@ -2332,7 +2332,7 @@ def plot_surface(self, X, Y, Z, *, norm=None, vmin=None, polys, facecolors=color, shade=shade, lightsource=lightsource, axlim_clip=axlim_clip, **kwargs) - self.add_collection(polyc) + self.add_collection(polyc, autolim="_datalim_only") self.auto_scale_xyz(X, Y, Z, had_data) return polyc @@ -2458,7 +2458,7 @@ def plot_wireframe(self, X, Y, Z, *, axlim_clip=False, **kwargs): lines = list(row_lines) + list(col_lines) linec = art3d.Line3DCollection(lines, axlim_clip=axlim_clip, **kwargs) - self.add_collection(linec) + self.add_collection(linec, autolim="_datalim_only") return linec @@ -2559,7 +2559,7 @@ def plot_trisurf(self, *args, color=None, norm=None, vmin=None, vmax=None, verts, *args, shade=shade, lightsource=lightsource, facecolors=color, axlim_clip=axlim_clip, **kwargs) - self.add_collection(polyc) + self.add_collection(polyc, autolim="_datalim_only") self.auto_scale_xyz(tri.x, tri.y, z, had_data) return polyc @@ -2901,7 +2901,7 @@ def add_collection3d(self, col, zs=0, zdir='z', autolim=True, *, # Currently unable to do so due to issues with Patch3DCollection # See https://github.com/matplotlib/matplotlib/issues/14298 for details - collection = super().add_collection(col) + collection = super().add_collection(col, autolim="_datalim_only") return collection @_preprocess_data(replace_names=["xs", "ys", "zs", "s", @@ -3231,7 +3231,7 @@ def bar3d(self, x, y, z, dx, dy, dz, color=None, lightsource=lightsource, axlim_clip=axlim_clip, *args, **kwargs) - self.add_collection(col) + self.add_collection(col, autolim="_datalim_only") self.auto_scale_xyz((minx, maxx), (miny, maxy), (minz, maxz), had_data) @@ -3328,7 +3328,7 @@ def calc_arrows(UVW): if any(len(v) == 0 for v in input_args): # No quivers, so just make an empty collection and return early linec = art3d.Line3DCollection([], **kwargs) - self.add_collection(linec) + self.add_collection(linec, autolim="_datalim_only") return linec shaft_dt = np.array([0., length], dtype=float) @@ -3366,7 +3366,7 @@ def calc_arrows(UVW): lines = [] linec = art3d.Line3DCollection(lines, axlim_clip=axlim_clip, **kwargs) - self.add_collection(linec) + self.add_collection(linec, autolim="_datalim_only") self.auto_scale_xyz(XYZ[:, 0], XYZ[:, 1], XYZ[:, 2], had_data) @@ -3897,7 +3897,7 @@ def _extract_errs(err, data, lomask, himask): errline = art3d.Line3DCollection(np.array(coorderr).T, axlim_clip=axlim_clip, **eb_lines_style) - self.add_collection(errline) + self.add_collection(errline, autolim="_datalim_only") errlines.append(errline) coorderrs.append(coorderr) @@ -4047,7 +4047,7 @@ def stem(self, x, y, z, *, linefmt='C0-', markerfmt='C0o', basefmt='C3-', stemlines = art3d.Line3DCollection( lines, linestyles=linestyle, colors=linecolor, label='_nolegend_', axlim_clip=axlim_clip) - self.add_collection(stemlines) + self.add_collection(stemlines, autolim="_datalim_only") markerline, = self.plot(x, y, z, markerfmt, label='_nolegend_') stem_container = StemContainer((markerline, stemlines, baseline), diff --git a/lib/mpl_toolkits/mplot3d/tests/test_art3d.py b/lib/mpl_toolkits/mplot3d/tests/test_art3d.py index 174c12608ae9..8ff6050443ab 100644 --- a/lib/mpl_toolkits/mplot3d/tests/test_art3d.py +++ b/lib/mpl_toolkits/mplot3d/tests/test_art3d.py @@ -55,7 +55,7 @@ def test_zordered_error(): fig = plt.figure() ax = fig.add_subplot(projection="3d") - ax.add_collection(Line3DCollection(lc)) + ax.add_collection(Line3DCollection(lc), autolim="_datalim_only") ax.scatter(*pc, visible=False) plt.draw() diff --git a/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py b/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py index 45ec1da9f715..e6d11f793b46 100644 --- a/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py +++ b/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py @@ -1217,7 +1217,7 @@ def _test_proj_draw_axes(M, s=1, *args, **kwargs): fig, ax = plt.subplots(*args, **kwargs) linec = LineCollection(lines) - ax.add_collection(linec) + ax.add_collection(linec, autolim="_datalim_only") for x, y, t in zip(txs, tys, ['o', 'x', 'y', 'z']): ax.text(x, y, t) diff --git a/lib/mpl_toolkits/mplot3d/tests/test_legend3d.py b/lib/mpl_toolkits/mplot3d/tests/test_legend3d.py index 7fd676df1e31..091ae2c3e12f 100644 --- a/lib/mpl_toolkits/mplot3d/tests/test_legend3d.py +++ b/lib/mpl_toolkits/mplot3d/tests/test_legend3d.py @@ -47,9 +47,9 @@ def test_linecollection_scaled_dashes(): lc3 = art3d.Line3DCollection(lines3, linestyles=":", lw=.5) fig, ax = plt.subplots(subplot_kw=dict(projection='3d')) - ax.add_collection(lc1) - ax.add_collection(lc2) - ax.add_collection(lc3) + ax.add_collection(lc1, autolim="_datalim_only") + ax.add_collection(lc2, autolim="_datalim_only") + ax.add_collection(lc3, autolim="_datalim_only") leg = ax.legend([lc1, lc2, lc3], ['line1', 'line2', 'line 3']) h1, h2, h3 = leg.legend_handles From 797549403b5ab0712053f6864874c09813776ebe Mon Sep 17 00:00:00 2001 From: Tim Hoffmann <2836374+timhoffm@users.noreply.github.com> Date: Sun, 3 Aug 2025 11:31:25 +0200 Subject: [PATCH 04/12] DOC: Simplify Line, Poly and RegularPoly example - use `color` kwarg instead of separate `add_color()` - remove `autolim=True` from `add_collection()` calls as that is the default anyway --- .../shapes_and_collections/collections.py | 44 +++++-------------- 1 file changed, 12 insertions(+), 32 deletions(-) diff --git a/galleries/examples/shapes_and_collections/collections.py b/galleries/examples/shapes_and_collections/collections.py index 032be40317c0..a5b25fd8d2bb 100644 --- a/galleries/examples/shapes_and_collections/collections.py +++ b/galleries/examples/shapes_and_collections/collections.py @@ -47,53 +47,36 @@ col = collections.LineCollection( - [spiral], offsets=xyo, offset_transform=ax1.transData) + [spiral], offsets=xyo, offset_transform=ax1.transData, color=colors) +# transform the line segments such that their size is given in points trans = fig.dpi_scale_trans + transforms.Affine2D().scale(1.0/72.0) col.set_transform(trans) # the points to pixels transform -# Note: the first argument to the collection initializer -# must be a list of sequences of (x, y) tuples; we have only -# one sequence, but we still have to put it in a list. -ax1.add_collection(col, autolim=True) -# autolim=True enables autoscaling. For collections with -# offsets like this, it is neither efficient nor accurate, -# but it is good enough to generate a plot that you can use -# as a starting point. If you know beforehand the range of -# x and y that you want to show, it is better to set them -# explicitly, set the *autolim* keyword argument to False. - -# Make a transform for the line segments such that their size is -# given in points: -col.set_color(colors) - +ax1.add_collection(col) ax1.set_title('LineCollection using offsets') # The same data as above, but fill the curves. col = collections.PolyCollection( - [spiral], offsets=xyo, offset_transform=ax2.transData) + [spiral], offsets=xyo, offset_transform=ax2.transData, color=colors) trans = transforms.Affine2D().scale(fig.dpi/72.0) col.set_transform(trans) # the points to pixels transform -ax2.add_collection(col, autolim=True) -col.set_color(colors) - - +ax2.add_collection(col) ax2.set_title('PolyCollection using offsets') -# 7-sided regular polygons +# 7-sided regular polygons col = collections.RegularPolyCollection( - 7, sizes=np.abs(xx) * 10.0, offsets=xyo, offset_transform=ax3.transData) + 7, sizes=np.abs(xx) * 10.0, offsets=xyo, offset_transform=ax3.transData, + color=colors) trans = transforms.Affine2D().scale(fig.dpi / 72.0) col.set_transform(trans) # the points to pixels transform -ax3.add_collection(col, autolim=True) -col.set_color(colors) +ax3.add_collection(col) ax3.set_title('RegularPolyCollection using offsets') # Simulate a series of ocean current profiles, successively # offset by 0.1 m/s so that they form what is sometimes called # a "waterfall" plot or a "stagger" plot. - nverts = 60 ncurves = 20 offs = (0.1, 0.0) @@ -107,15 +90,12 @@ curve = np.column_stack([xxx, yy * 100]) segs.append(curve) -col = collections.LineCollection(segs, offsets=offs) -ax4.add_collection(col, autolim=True) -col.set_color(colors) +col = collections.LineCollection(segs, offsets=offs, color=colors) +ax4.add_collection(col) ax4.set_title('Successive data offsets') ax4.set_xlabel('Zonal velocity component (m/s)') ax4.set_ylabel('Depth (m)') -# Reverse the y-axis so depth increases downward -ax4.set_ylim(ax4.get_ylim()[::-1]) - +ax4.invert_yaxis() # so that depth increases downward plt.show() From b48ef02babf79686bc9117ebf3b5afd3fc6f170a Mon Sep 17 00:00:00 2001 From: Jerome Villegas Date: Tue, 5 Aug 2025 15:08:34 -0700 Subject: [PATCH 05/12] add logo guideline bullet points --- doc/project/logo_usage_guidelines.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/project/logo_usage_guidelines.rst b/doc/project/logo_usage_guidelines.rst index 8c8779ff616e..31ebbc07aadf 100644 --- a/doc/project/logo_usage_guidelines.rst +++ b/doc/project/logo_usage_guidelines.rst @@ -14,11 +14,11 @@ Logo View the :doc:`/gallery/misc/logos2` to see the code to generate the logo using Matplotlib. -Use the logo with the following guidelines. +Use the logo with the following guidelines. For more detailed information, see the NUMFOCUS Trademark Guidelines page. -* Example -* Example 2 -* Example 3 +* The logo is intended for reference as an indication of using Matplotlib for legal and :ref:`code_of_conduct` permitting use. +* Production and distribution of items with the Matplotlib logo, or any otherwise modified versions, are prohibited. +* The logo cannot be used as an endorsement of any organization or entity. Colors ------ From 7d81184f743de7d6d064cd12573041982599d612 Mon Sep 17 00:00:00 2001 From: Tim Hoffmann <2836374+timhoffm@users.noreply.github.com> Date: Sun, 3 Aug 2025 11:25:46 +0200 Subject: [PATCH 06/12] MNT: Remove explicit use of default value add_collection(..., autolim=True) --- lib/matplotlib/axes/_axes.py | 6 +++--- lib/matplotlib/tests/test_collections.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index b71f26b76d38..f0bc139bdc11 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -3043,7 +3043,7 @@ def broken_barh(self, xranges, yrange, align="bottom", **kwargs): vertices.append([(x0, y0), (x0, y1), (x1, y1), (x1, y0)]) col = mcoll.PolyCollection(np.array(vertices), **kwargs) - self.add_collection(col, autolim=True) + self.add_collection(col) return col @@ -5821,7 +5821,7 @@ def quiver(self, *args, **kwargs): # Make sure units are handled for x and y values args = self._quiver_units(args, kwargs) q = mquiver.Quiver(self, *args, **kwargs) - self.add_collection(q, autolim=True) + self.add_collection(q) return q # args can be some combination of X, Y, U, V, C and all should be replaced @@ -5832,7 +5832,7 @@ def barbs(self, *args, **kwargs): # Make sure units are handled for x and y values args = self._quiver_units(args, kwargs) b = mquiver.Barbs(self, *args, **kwargs) - self.add_collection(b, autolim=True) + self.add_collection(b) return b # Uses a custom implementation of data-kwarg handling in diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py index e6e36da29aa8..c062e8c12b9c 100644 --- a/lib/matplotlib/tests/test_collections.py +++ b/lib/matplotlib/tests/test_collections.py @@ -524,7 +524,7 @@ def test_regularpolycollection_rotate(): col = mcollections.RegularPolyCollection( 4, sizes=(100,), rotation=alpha, offsets=[xy], offset_transform=ax.transData) - ax.add_collection(col, autolim=True) + ax.add_collection(col) @image_comparison(['regularpolycollection_scale.png'], remove_text=True) @@ -552,7 +552,7 @@ def get_transform(self): circle_areas = [np.pi / 2] squares = SquareCollection( sizes=circle_areas, offsets=xy, offset_transform=ax.transData) - ax.add_collection(squares, autolim=True) + ax.add_collection(squares) ax.axis([-1, 1, -1, 1]) From 4004ed0650a28d9f85cab234a7f0cb5727b7fee2 Mon Sep 17 00:00:00 2001 From: Jerome Villegas Date: Tue, 5 Aug 2025 16:22:51 -0700 Subject: [PATCH 07/12] add link to numfocus trademark page --- doc/project/logo_usage_guidelines.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/project/logo_usage_guidelines.rst b/doc/project/logo_usage_guidelines.rst index 31ebbc07aadf..14c80794c416 100644 --- a/doc/project/logo_usage_guidelines.rst +++ b/doc/project/logo_usage_guidelines.rst @@ -14,7 +14,7 @@ Logo View the :doc:`/gallery/misc/logos2` to see the code to generate the logo using Matplotlib. -Use the logo with the following guidelines. For more detailed information, see the NUMFOCUS Trademark Guidelines page. +Use the logo with the following guidelines. For more detailed information, see the `NumFOCUS Trademark Guidelines `_ page. * The logo is intended for reference as an indication of using Matplotlib for legal and :ref:`code_of_conduct` permitting use. * Production and distribution of items with the Matplotlib logo, or any otherwise modified versions, are prohibited. From 3a65868bf1f467d73941c2717d28be4e5a3f914d Mon Sep 17 00:00:00 2001 From: Jerome Villegas Date: Thu, 28 Aug 2025 15:15:34 -0700 Subject: [PATCH 08/12] Revise and reduce paragraphs, update colors table --- doc/_static/large_logo.svg | 389 ++++++++++++++++++++++++++ doc/project/logo_usage_guidelines.rst | 98 +++++-- 2 files changed, 457 insertions(+), 30 deletions(-) create mode 100644 doc/_static/large_logo.svg diff --git a/doc/_static/large_logo.svg b/doc/_static/large_logo.svg new file mode 100644 index 000000000000..56168354c821 --- /dev/null +++ b/doc/_static/large_logo.svg @@ -0,0 +1,389 @@ + + + + + + + + 2025-08-27T10:57:41.226901 + image/svg+xml + + + Matplotlib v3.10.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/project/logo_usage_guidelines.rst b/doc/project/logo_usage_guidelines.rst index 14c80794c416..e505ef5e55f9 100644 --- a/doc/project/logo_usage_guidelines.rst +++ b/doc/project/logo_usage_guidelines.rst @@ -4,41 +4,79 @@ .. _logo_usage_guidelines: Logo Usage Guidelines -===================== - -The Matplotlib logo is available both with and without text. Use the official logo below to reference Matplotlib as needed. See the :ref:`license` or :ref:`citing_matplotlib` pages for acknowledgement in any scientific publication if used. +##################### +The Matplotlib logo is available both with and without text. Use the official logo below to reference Matplotlib as needed. See the :ref:`license` or :ref:`citing_matplotlib` pages for acknowledgement in any scientific publication if used. Use the logo with the guidelines from the `NumFOCUS Trademark Guidelines `_ page. Logo ----- +**** + +View the :doc:`/gallery/misc/logos2` to see the code to generate the logo using Matplotlib. Follow the guidelines in the points below for using the logo. + +- Keep the ratio consistent +- Maintain the same colors + +.. grid:: 2 -View the :doc:`/gallery/misc/logos2` to see the code to generate the logo using Matplotlib. + .. grid-item-card:: Primary logo -Use the logo with the following guidelines. For more detailed information, see the `NumFOCUS Trademark Guidelines `_ page. + .. image:: /_static/logo2.svg -* The logo is intended for reference as an indication of using Matplotlib for legal and :ref:`code_of_conduct` permitting use. -* Production and distribution of items with the Matplotlib logo, or any otherwise modified versions, are prohibited. -* The logo cannot be used as an endorsement of any organization or entity. + .. grid-item-card:: Logo mark + + .. image:: /_static/large_logo.svg Colors ------- - -The official colors below show both hex code and RGB values for Matplotlib. - -+--------+-------------+-------------------+ -| Color | Hex Code | RGB | -+========+=============+===================+ -| Blue | ``#285479`` | ``40, 84, 121`` | -+--------+-------------+-------------------+ -| Red | ``#F2AD7A`` | ``242, 173, 122`` | -+--------+-------------+-------------------+ -| Green | ``#E6FA93`` | ``230, 250, 147`` | -+--------+-------------+-------------------+ -| Gold | ``#F9DF81`` | ``249, 223, 129`` | -+--------+-------------+-------------------+ -| Mint | ``#C6FDBB`` | ``198, 253, 187`` | -+--------+-------------+-------------------+ -| Danube | ``#7188C9`` | ``113, 136, 201`` | -+--------+-------------+-------------------+ -| Cyan | ``#96E8D2`` | ``150, 232, 210`` | -+--------+-------------+-------------------+ +****** + +The Matplotlib logo's official colors below show both hex code and RGB values for Matplotlib. + +.. list-table:: Logo colors + :header-rows: 1 + + * - Color + - Swatch + - Hex Code + - RGB + * - Blue + - .. raw:: html + +
+ - ``#285479`` + - ``40, 84, 121`` + * - Red + - .. raw:: html + +
+ - ``#F2AD7A`` + - ``242, 173, 122`` + * - Green + - .. raw:: html + +
+ - ``#E6FA93`` + - ``230, 250, 147`` + * - Gold + - .. raw:: html + +
+ - ``#F9DF81`` + - ``249, 223, 129`` + * - Mint + - .. raw:: html + +
+ - ``#C6FDBB`` + - ``198, 253, 187`` + * - Danube + - .. raw:: html + +
+ - ``#7188C9`` + - ``113, 136, 201`` + * - Cyan + - .. raw:: html + +
+ - ``#96E8D2`` + - ``150, 232, 210`` From 9a60217a624b01d20c196812b062b0e39993422d Mon Sep 17 00:00:00 2001 From: Jerome Villegas Date: Fri, 5 Sep 2025 10:58:25 -0700 Subject: [PATCH 09/12] Add dark logo card, update colors table --- doc/_static/logo_dark.svg | 556 ++++++++++++++++++++++++++ doc/project/logo_usage_guidelines.rst | 17 +- 2 files changed, 570 insertions(+), 3 deletions(-) create mode 100644 doc/_static/logo_dark.svg diff --git a/doc/_static/logo_dark.svg b/doc/_static/logo_dark.svg new file mode 100644 index 000000000000..3074aec2dc79 --- /dev/null +++ b/doc/_static/logo_dark.svg @@ -0,0 +1,556 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/project/logo_usage_guidelines.rst b/doc/project/logo_usage_guidelines.rst index e505ef5e55f9..6b0d09905ddc 100644 --- a/doc/project/logo_usage_guidelines.rst +++ b/doc/project/logo_usage_guidelines.rst @@ -16,13 +16,18 @@ View the :doc:`/gallery/misc/logos2` to see the code to generate the logo using - Keep the ratio consistent - Maintain the same colors -.. grid:: 2 +.. grid:: 3 - .. grid-item-card:: Primary logo + .. grid-item-card:: Primary logo light .. image:: /_static/logo2.svg - .. grid-item-card:: Logo mark + .. grid-item-card:: Primary logo dark + + .. image:: /_static/logo_dark.svg + :class: dark_background_image + + .. grid-item-card:: Logo mark, same for both .. image:: /_static/large_logo.svg @@ -44,6 +49,12 @@ The Matplotlib logo's official colors below show both hex code and RGB values fo
- ``#285479`` - ``40, 84, 121`` + * - Light blue + - .. raw:: html + +
+ - ``#65baea`` + - ``101, 186, 234`` * - Red - .. raw:: html From b88aa09c9e41c22f3c9693734c3931b0c559812e Mon Sep 17 00:00:00 2001 From: Jerome Villegas Date: Tue, 9 Sep 2025 11:28:24 -0700 Subject: [PATCH 10/12] modify SVG files for logos for testing --- doc/_static/large_logo_dark.svg | 390 ++++++++++++++++++ doc/_static/large_logo_light.svg | 390 ++++++++++++++++++ doc/_static/logo2.svg | 1 + doc/_static/logo2_dark.svg | 557 ++++++++++++++++++++++++++ doc/project/logo_usage_guidelines.rst | 10 +- 5 files changed, 1344 insertions(+), 4 deletions(-) create mode 100644 doc/_static/large_logo_dark.svg create mode 100644 doc/_static/large_logo_light.svg create mode 100644 doc/_static/logo2_dark.svg diff --git a/doc/_static/large_logo_dark.svg b/doc/_static/large_logo_dark.svg new file mode 100644 index 000000000000..f14670f56f2e --- /dev/null +++ b/doc/_static/large_logo_dark.svg @@ -0,0 +1,390 @@ + + + + + + + + + 2025-08-27T10:57:41.226901 + image/svg+xml + + + Matplotlib v3.10.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/_static/large_logo_light.svg b/doc/_static/large_logo_light.svg new file mode 100644 index 000000000000..1c78efdcbb8b --- /dev/null +++ b/doc/_static/large_logo_light.svg @@ -0,0 +1,390 @@ + + + + + + + + + 2025-08-27T10:57:41.226901 + image/svg+xml + + + Matplotlib v3.10.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/_static/logo2.svg b/doc/_static/logo2.svg index f2d289c72a07..8e784752a796 100644 --- a/doc/_static/logo2.svg +++ b/doc/_static/logo2.svg @@ -19,6 +19,7 @@ inkscape:export-filename="/home/mdboom/Art/logo-text.png" inkscape:export-xdpi="300" inkscape:export-ydpi="300"> + diff --git a/doc/_static/logo2_dark.svg b/doc/_static/logo2_dark.svg new file mode 100644 index 000000000000..5cf0a91fe8fd --- /dev/null +++ b/doc/_static/logo2_dark.svg @@ -0,0 +1,557 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/project/logo_usage_guidelines.rst b/doc/project/logo_usage_guidelines.rst index 6b0d09905ddc..897e9c624e89 100644 --- a/doc/project/logo_usage_guidelines.rst +++ b/doc/project/logo_usage_guidelines.rst @@ -16,20 +16,22 @@ View the :doc:`/gallery/misc/logos2` to see the code to generate the logo using - Keep the ratio consistent - Maintain the same colors -.. grid:: 3 +.. grid:: 2 .. grid-item-card:: Primary logo light .. image:: /_static/logo2.svg .. grid-item-card:: Primary logo dark + + .. image:: /_static/logo2_dark.svg - .. image:: /_static/logo_dark.svg - :class: dark_background_image +.. grid:: 2 .. grid-item-card:: Logo mark, same for both - .. image:: /_static/large_logo.svg + .. image:: /_static/large_logo_light.svg + .. image:: /_static/large_logo_dark.svg Colors ****** From 55e58e9d0f744554d0579f1e692f6bfd9d1b6106 Mon Sep 17 00:00:00 2001 From: Jerome Villegas Date: Fri, 19 Sep 2025 10:24:01 -0700 Subject: [PATCH 11/12] set grid for logos to be one column --- doc/project/logo_usage_guidelines.rst | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/doc/project/logo_usage_guidelines.rst b/doc/project/logo_usage_guidelines.rst index 897e9c624e89..b1962d3056ab 100644 --- a/doc/project/logo_usage_guidelines.rst +++ b/doc/project/logo_usage_guidelines.rst @@ -16,7 +16,7 @@ View the :doc:`/gallery/misc/logos2` to see the code to generate the logo using - Keep the ratio consistent - Maintain the same colors -.. grid:: 2 +.. grid:: 1 .. grid-item-card:: Primary logo light @@ -26,8 +26,6 @@ View the :doc:`/gallery/misc/logos2` to see the code to generate the logo using .. image:: /_static/logo2_dark.svg -.. grid:: 2 - .. grid-item-card:: Logo mark, same for both .. image:: /_static/large_logo_light.svg From 1098bdf4b95553dfa7d1ab9e63924338875af98c Mon Sep 17 00:00:00 2001 From: Jerome Villegas Date: Fri, 3 Oct 2025 10:05:28 -0700 Subject: [PATCH 12/12] remove light/dark svg files, revert to original reference --- doc/_static/large_logo_dark.svg | 390 ------------------ doc/_static/large_logo_light.svg | 390 ------------------ doc/_static/logo2_dark.svg | 557 -------------------------- doc/project/logo_usage_guidelines.rst | 5 +- 4 files changed, 2 insertions(+), 1340 deletions(-) delete mode 100644 doc/_static/large_logo_dark.svg delete mode 100644 doc/_static/large_logo_light.svg delete mode 100644 doc/_static/logo2_dark.svg diff --git a/doc/_static/large_logo_dark.svg b/doc/_static/large_logo_dark.svg deleted file mode 100644 index f14670f56f2e..000000000000 --- a/doc/_static/large_logo_dark.svg +++ /dev/null @@ -1,390 +0,0 @@ - - - - - - - - - 2025-08-27T10:57:41.226901 - image/svg+xml - - - Matplotlib v3.10.3, https://matplotlib.org/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/doc/_static/large_logo_light.svg b/doc/_static/large_logo_light.svg deleted file mode 100644 index 1c78efdcbb8b..000000000000 --- a/doc/_static/large_logo_light.svg +++ /dev/null @@ -1,390 +0,0 @@ - - - - - - - - - 2025-08-27T10:57:41.226901 - image/svg+xml - - - Matplotlib v3.10.3, https://matplotlib.org/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/doc/_static/logo2_dark.svg b/doc/_static/logo2_dark.svg deleted file mode 100644 index 5cf0a91fe8fd..000000000000 --- a/doc/_static/logo2_dark.svg +++ /dev/null @@ -1,557 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/doc/project/logo_usage_guidelines.rst b/doc/project/logo_usage_guidelines.rst index b1962d3056ab..b2edaf6b0ee5 100644 --- a/doc/project/logo_usage_guidelines.rst +++ b/doc/project/logo_usage_guidelines.rst @@ -24,12 +24,11 @@ View the :doc:`/gallery/misc/logos2` to see the code to generate the logo using .. grid-item-card:: Primary logo dark - .. image:: /_static/logo2_dark.svg + .. image:: /_static/logo_dark.svg .. grid-item-card:: Logo mark, same for both - .. image:: /_static/large_logo_light.svg - .. image:: /_static/large_logo_dark.svg + .. image:: /_static/large_logo.svg Colors ******