From eb546b44846e07291144d8914c5acd9309c67e80 Mon Sep 17 00:00:00 2001 From: eudoxos Date: Mon, 25 Feb 2019 10:39:03 +0100 Subject: [PATCH] Added path.sketch_seed to rcParams Seed can be manually set for path.sketch by modifying the value of rcParams path.sketch_seed or by passing a seed value to xkcd or Artist.set_sketch . Seed will also have a rolling(auto incrementing) behaviour. Co-Authored-By: Oscar Gustafsson <8114497+oscargus@users.noreply.github.com> Co-Authored-By: eudoxos <1029876+eudoxos@users.noreply.github.com> --- .../next_api_changes/behavior/26050-AS.rst | 13 +++ doc/users/next_whats_new/sketch_seed.rst | 67 ++++++++++++++ lib/matplotlib/artist.py | 17 +++- lib/matplotlib/artist.pyi | 3 +- lib/matplotlib/backend_bases.py | 27 +++++- lib/matplotlib/backend_bases.pyi | 5 + lib/matplotlib/backends/backend_pgf.py | 2 +- lib/matplotlib/figure.py | 2 + lib/matplotlib/lines.py | 3 +- lib/matplotlib/mpl-data/matplotlibrc | 1 + lib/matplotlib/patches.py | 4 +- lib/matplotlib/path.py | 4 +- lib/matplotlib/path.pyi | 4 +- lib/matplotlib/pyplot.py | 9 +- lib/matplotlib/rcsetup.py | 10 ++ lib/matplotlib/rcsetup.pyi | 1 + .../tests/baseline_images/test_path/xkcd.png | Bin 31607 -> 32423 bytes .../baseline_images/test_path/xkcd_marker.png | Bin 22078 -> 23303 bytes lib/matplotlib/tests/test_backend_pgf.py | 2 +- lib/matplotlib/tests/test_path.py | 87 +++++++++++++++++- src/_backend_agg.h | 2 +- src/_backend_agg_basic_types.h | 1 + src/_path.h | 4 +- src/path_converters.h | 12 ++- src/py_converters.cpp | 7 +- 25 files changed, 259 insertions(+), 28 deletions(-) create mode 100644 doc/api/next_api_changes/behavior/26050-AS.rst create mode 100644 doc/users/next_whats_new/sketch_seed.rst diff --git a/doc/api/next_api_changes/behavior/26050-AS.rst b/doc/api/next_api_changes/behavior/26050-AS.rst new file mode 100644 index 000000000000..0f8424f4d047 --- /dev/null +++ b/doc/api/next_api_changes/behavior/26050-AS.rst @@ -0,0 +1,13 @@ +Seed for ``path.sketch`` will have a rolling (auto incrementing) behaviour +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The seed for the internal Pseudo number generator will now have an auto changing behavior. +This means that the C code of every artist will get a different seed every time it is called +and this will be done in a deterministic manner. + +Two figures sketched with the same parameters and different seed will look different from one another. + +``Artist.get_sketch_params()`` will now return a 4-tuple instead of a 3-tuple consisting of +(scale, length, randomness, seed) of the form (float, float, float, int). + +See 'What's new' on how to set a value to the seed and its behaviour. diff --git a/doc/users/next_whats_new/sketch_seed.rst b/doc/users/next_whats_new/sketch_seed.rst new file mode 100644 index 000000000000..97ebea87fe2c --- /dev/null +++ b/doc/users/next_whats_new/sketch_seed.rst @@ -0,0 +1,67 @@ +``sketch_seed`` parameter for rcParams +-------------------------------------- + +`~matplotlib.rcParams` now has a new parameter ``path.sketch_seed``. +Its default value is 0 and accepted values are any non negative integer. +This allows the user to set the seed for the internal pseudo random number generator in one of three ways. + +1) Directly changing the rcParam: + + rcParams['path.sketch_seed'] = 20 + +2) Passing a value to the new *seed* parameter of `~matplotlib.pyplot.xkcd` function: + + plt.xkcd(seed=20) + +3) Passing a value to the new *seed* parameter of matplotlib.artist.set_sketch_params function: + + ln = plt.plot(x, y) + ln[0].set_sketch_params(seed = 20) + +The seed will also have a changing characteristic for every artist which will be done in a deterministic manner. + + +.. plot:: + :include-source: true + + import matplotlib.pyplot as plt + from matplotlib import rcParams + + with plt.xkcd(): + rcParams['path.sketch_seed']=0 + rcParams['path.sketch']=(2,120,40) + pat,txt=plt.pie([10,20,30,40],wedgeprops={'edgecolor':'black'}) + plt.legend(pat,['first','second','third','fourth'],loc='best') + plt.title("seed = 0") + plt.show() + +.. plot:: + :include-source: true + + import matplotlib.pyplot as plt + from matplotlib import rcParams + + fig, ax = plt.subplots() + x = np.linspace(0.7, 1.42, 100) + y = x ** 2 + ln = ax.plot(x, y, color='black') + ln[0].set_sketch_params(100, 100, 20, 40) + plt.title("seed = 40") + plt.show() + +.. plot:: + :include-source: true + + import matplotlib.pyplot as plt + from matplotlib import rcParams + + with plt.xkcd(seed=19680801): + import matplotlib + from matplotlib import gridspec + + rcParams['path.sketch']=(2,120,40) + + pat,txt=plt.pie([10,20,30,40],wedgeprops={'edgecolor':'black'}) + plt.legend(pat,['first','second','third','fourth'],loc='best') + plt.title("seed = 19680801") + plt.show() diff --git a/lib/matplotlib/artist.py b/lib/matplotlib/artist.py index 5c3f6dc5952f..c53c3f88da7c 100644 --- a/lib/matplotlib/artist.py +++ b/lib/matplotlib/artist.py @@ -209,6 +209,7 @@ def __init__(self): self._gid = None self._snap = None self._sketch = mpl.rcParams['path.sketch'] + self._sketch_seed = mpl.rcParams['path.sketch_seed'] self._path_effects = mpl.rcParams['path.effects'] self._sticky_edges = _XYPair([], []) self._in_layout = True @@ -681,7 +682,8 @@ def get_sketch_params(self): """ return self._sketch - def set_sketch_params(self, scale=None, length=None, randomness=None): + def set_sketch_params(self, scale=None, length=None, randomness=None, + seed=None): """ Set the sketch parameters. @@ -701,12 +703,21 @@ def set_sketch_params(self, scale=None, length=None, randomness=None): The PGF backend uses this argument as an RNG seed and not as described above. Using the same seed yields the same random shape. - .. ACCEPTS: (scale: float, length: float, randomness: float) + seed : int, optional + Seed for the internal pseudo-random number generator. + + .. versionadded:: 3.8 + + .. ACCEPTS: (scale: float, length: float, randomness: float, seed: int) """ + if seed is not None: + self._sketch_seed = seed + if scale is None: self._sketch = None else: - self._sketch = (scale, length or 128.0, randomness or 16.0) + self._sketch = (scale, length or 128.0, randomness or 16.0, + self._sketch_seed) self.stale = True def set_path_effects(self, path_effects): diff --git a/lib/matplotlib/artist.pyi b/lib/matplotlib/artist.pyi index 101e97a9a072..a9d5d7ed47b6 100644 --- a/lib/matplotlib/artist.pyi +++ b/lib/matplotlib/artist.pyi @@ -76,12 +76,13 @@ class Artist: def set_gid(self, gid: str | None) -> None: ... def get_snap(self) -> bool | None: ... def set_snap(self, snap: bool | None) -> None: ... - def get_sketch_params(self) -> tuple[float, float, float] | None: ... + def get_sketch_params(self) -> tuple[float, float, float, int] | None: ... def set_sketch_params( self, scale: float | None = ..., length: float | None = ..., randomness: float | None = ..., + seed: int | None = ..., ) -> None: ... def set_path_effects(self, path_effects: list[AbstractPathEffect]) -> None: ... def get_path_effects(self) -> list[AbstractPathEffect]: ... diff --git a/lib/matplotlib/backend_bases.py b/lib/matplotlib/backend_bases.py index 009410593b34..dbf1788b97af 100644 --- a/lib/matplotlib/backend_bases.py +++ b/lib/matplotlib/backend_bases.py @@ -754,6 +754,19 @@ def _draw_disabled(self): return _setattr_cm(self, **no_ops) + @property + def _seed_increment(self): + """ + seed increment for renderer. + It is used to implement the rolling characteristic for seed + """ + self.__seed_increment += 1 + return self.__seed_increment + + @_seed_increment.setter + def _seed_increment(self, value): + self.__seed_increment = value + class GraphicsContextBase: """An abstract base class that provides color, line styles, etc.""" @@ -1062,7 +1075,8 @@ def get_sketch_params(self): """ return self._sketch - def set_sketch_params(self, scale=None, length=None, randomness=None): + def set_sketch_params(self, scale=None, length=None, randomness=None, + seed=None): """ Set the sketch parameters. @@ -1076,10 +1090,19 @@ def set_sketch_params(self, scale=None, length=None, randomness=None): The length of the wiggle along the line, in pixels. randomness : float, default: 16 The scale factor by which the length is shrunken or expanded. + seed : int, optional + Seed for the internal pseudo-random number generator. + + .. versionadded:: 3.8 """ + self._sketch = ( None if scale is None - else (scale, length or 128., randomness or 16.)) + else (scale, + length or rcParams['path.sketch'][1], + randomness or rcParams['path.sketch'][2], + seed or rcParams['path.sketch_seed']) + ) class TimerBase: diff --git a/lib/matplotlib/backend_bases.pyi b/lib/matplotlib/backend_bases.pyi index 0ae88cf18a42..3d47f39a1dae 100644 --- a/lib/matplotlib/backend_bases.pyi +++ b/lib/matplotlib/backend_bases.pyi @@ -136,6 +136,10 @@ class RendererBase: def stop_rasterizing(self) -> None: ... def start_filter(self) -> None: ... def stop_filter(self, filter_func) -> None: ... + @property + def _seed_increment(self) -> int: ... + @_seed_increment.setter + def _seed_increment(self, value: int) -> None: ... class GraphicsContextBase: def __init__(self) -> None: ... @@ -180,6 +184,7 @@ class GraphicsContextBase: scale: float | None = ..., length: float | None = ..., randomness: float | None = ..., + seed:int | None = ..., ) -> None: ... class TimerBase: diff --git a/lib/matplotlib/backends/backend_pgf.py b/lib/matplotlib/backends/backend_pgf.py index 734c188b0048..2c05d1b6e182 100644 --- a/lib/matplotlib/backends/backend_pgf.py +++ b/lib/matplotlib/backends/backend_pgf.py @@ -575,7 +575,7 @@ def _print_pgf_path(self, gc, path, transform, rgbFace=None): # and has a separate "scale" argument for the amplitude. # -> Use "randomness" as PRNG seed to allow the user to force the # same shape on multiple sketched lines - scale, length, randomness = sketch_params + scale, length, randomness, seed = sketch_params if scale is not None: # make matplotlib and PGF rendering visually similar length *= 0.5 diff --git a/lib/matplotlib/figure.py b/lib/matplotlib/figure.py index ce263c3d8d1c..244100444507 100644 --- a/lib/matplotlib/figure.py +++ b/lib/matplotlib/figure.py @@ -45,6 +45,7 @@ Artist, allow_rasterization, _finalize_rasterization) from matplotlib.backend_bases import ( DrawEvent, FigureCanvasBase, NonGuiException, MouseButton, _get_renderer) + import matplotlib._api as _api import matplotlib.cbook as cbook import matplotlib.colorbar as cbar @@ -3141,6 +3142,7 @@ def draw(self, renderer): artists = self._get_draw_artists(renderer) try: + renderer._seed_increment = 0 renderer.open_group('figure', gid=self.get_gid()) if self.axes and self.get_layout_engine() is not None: try: diff --git a/lib/matplotlib/lines.py b/lib/matplotlib/lines.py index 92d55a3fe6ae..f793d1cdf7f6 100644 --- a/lib/matplotlib/lines.py +++ b/lib/matplotlib/lines.py @@ -823,7 +823,8 @@ def draw(self, renderer): gc.set_foreground(ec_rgba, isRGBA=True) if self.get_sketch_params() is not None: scale, length, randomness = self.get_sketch_params() - gc.set_sketch_params(scale/2, length/2, 2*randomness) + seed = self._sketch_seed + gc.set_sketch_params(scale/2, length/2, 2*randomness, seed) marker = self._marker diff --git a/lib/matplotlib/mpl-data/matplotlibrc b/lib/matplotlib/mpl-data/matplotlibrc index 2c53651da3d6..f9ad70f00f24 100644 --- a/lib/matplotlib/mpl-data/matplotlibrc +++ b/lib/matplotlib/mpl-data/matplotlibrc @@ -677,6 +677,7 @@ # - *randomness* is the factor by which the length is # randomly scaled. #path.effects: +#path.sketch_seed: 0 # seed for the internal pseudo number generator. ## *************************************************************************** diff --git a/lib/matplotlib/patches.py b/lib/matplotlib/patches.py index 92dc55940b8a..802fa34b79f5 100644 --- a/lib/matplotlib/patches.py +++ b/lib/matplotlib/patches.py @@ -563,7 +563,9 @@ def _draw_paths_with_artist_properties( gc.set_hatch_color(self._hatch_color) if self.get_sketch_params() is not None: - gc.set_sketch_params(*self.get_sketch_params()) + scale, length, randomness = self.get_sketch_params() + gc.set_sketch_params(scale, length, randomness, + self._sketch_seed+renderer._seed_increment) if self.get_path_effects(): from matplotlib.patheffects import PathEffectRenderer diff --git a/lib/matplotlib/path.py b/lib/matplotlib/path.py index a687db923c3c..f907e27dc362 100644 --- a/lib/matplotlib/path.py +++ b/lib/matplotlib/path.py @@ -382,8 +382,8 @@ def iter_segments(self, transform=None, remove_nans=True, clip=None, If True, curve segments will be returned as curve segments. If False, all curves will be converted to line segments. sketch : None or sequence, optional - If not None, must be a 3-tuple of the form - (scale, length, randomness), representing the sketch parameters. + If not None, must be a 4-tuple of the form + (scale, length, randomness, seed), representing the sketch parameters. """ if not len(self): return diff --git a/lib/matplotlib/path.pyi b/lib/matplotlib/path.pyi index c96c5a0ba9e4..91256e7fd1cd 100644 --- a/lib/matplotlib/path.pyi +++ b/lib/matplotlib/path.pyi @@ -61,7 +61,7 @@ class Path: stroke_width: float = ..., simplify: bool | None = ..., curves: bool = ..., - sketch: tuple[float, float, float] | None = ..., + sketch: tuple[float, float, float, int] | None = ..., ) -> Generator[tuple[np.ndarray, np.uint8], None, None]: ... def iter_bezier(self, **kwargs) -> Generator[BezierSegment, None, None]: ... def cleaned( @@ -74,7 +74,7 @@ class Path: curves: bool = ..., stroke_width: float = ..., snap: bool | None = ..., - sketch: tuple[float, float, float] | None = ... + sketch: tuple[float, float, float, int] | None = ... ) -> Path: ... def transformed(self, transform: Transform) -> Path: ... def contains_point( diff --git a/lib/matplotlib/pyplot.py b/lib/matplotlib/pyplot.py index 415d5c042241..618cc1bb35e3 100644 --- a/lib/matplotlib/pyplot.py +++ b/lib/matplotlib/pyplot.py @@ -701,8 +701,8 @@ def setp(obj, *args, **kwargs): def xkcd( - scale: float = 1, length: float = 100, randomness: float = 2 -) -> ExitStack: + scale: float = 1, length: float = 100, randomness: float = 2, + seed: int | None = None) -> ExitStack: """ Turn on `xkcd `_ sketch-style drawing mode. This will only have effect on things drawn after this function is called. @@ -718,6 +718,8 @@ def xkcd( The length of the wiggle along the line. randomness : float, optional The scale factor by which the length is shrunken or expanded. + seed: int, optional + Seed for the internal pseudo-random number generator. Notes ----- @@ -738,6 +740,9 @@ def xkcd( # This cannot be implemented in terms of contextmanager() or rc_context() # because this needs to work as a non-contextmanager too. + if seed is not None: + rcParams['path.sketch_seed'] = seed + if rcParams['text.usetex']: raise RuntimeError( "xkcd mode is not compatible with text.usetex = True") diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index 276bb9f812a9..09e5ebbd1eb9 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -565,6 +565,15 @@ def validate_sketch(s): raise ValueError("Expected a (scale, length, randomness) triplet") +def validate_sketch_seed(s): + s = validate_int(s) + + if s >= 0: + return s + else: + raise ValueError("seed must be a non negative integer") + + def _validate_greaterthan_minushalf(s): s = validate_float(s) if s > -0.5: @@ -1288,6 +1297,7 @@ def _convert_validator_spec(key, conv): "path.simplify_threshold": _validate_greaterequal0_lessequal1, "path.snap": validate_bool, "path.sketch": validate_sketch, + "path.sketch_seed": validate_sketch_seed, "path.effects": validate_anylist, "agg.path.chunksize": validate_int, # 0 to disable chunking diff --git a/lib/matplotlib/rcsetup.pyi b/lib/matplotlib/rcsetup.pyi index 8a8a9e71d666..340f131670a0 100644 --- a/lib/matplotlib/rcsetup.pyi +++ b/lib/matplotlib/rcsetup.pyi @@ -140,6 +140,7 @@ def _validate_linestyle(s: Any) -> LineStyleType: ... def validate_markeverylist(s: Any) -> list[MarkEveryType]: ... def validate_bbox(s: Any) -> Literal["tight", "standard"] | None: ... def validate_sketch(s: Any) -> None | tuple[float, float, float]: ... +def validate_sketch_seed(s: Any) -> int: ... def validate_hatch(s: Any) -> str: ... def validate_hatchlist(s: Any) -> list[str]: ... def validate_dashlist(s: Any) -> list[list[float]]: ... diff --git a/lib/matplotlib/tests/baseline_images/test_path/xkcd.png b/lib/matplotlib/tests/baseline_images/test_path/xkcd.png index fd486c42305f3e044da837f92a6e1882ec6a73e9..f57d07aab8f2c5b835fb793d82ca5f8ba93adfb3 100644 GIT binary patch literal 32423 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 literal 31607 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 diff --git a/lib/matplotlib/tests/baseline_images/test_path/xkcd_marker.png b/lib/matplotlib/tests/baseline_images/test_path/xkcd_marker.png index c4224f74c1ecca629bab4157638cd2d68830f3b9..a163a22542172d1908b270f56a0cedcf9ed07b2d 100644 GIT binary patch literal 23303 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 Ss0%Q17(8A5T-G@yGywpSO_G2B literal 22078 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 } }; + template class Sketch { @@ -1004,8 +1005,10 @@ class Sketch randomness: the factor that the sketch length will randomly shrink and expand. + + seed: seed for the built-in pseudo-random number generator. */ - Sketch(VertexSource &source, double scale, double length, double randomness) + Sketch(VertexSource &source, double scale, double length, double randomness, int seed) : m_source(&source), m_scale(scale), m_length(length), @@ -1015,9 +1018,9 @@ class Sketch m_last_y(0.0), m_has_last(false), m_p(0.0), - m_rand(0) + m_rand(0), + m_seed(seed) { - rewind(0); const double d_M_PI = 3.14159265358979323846; m_p_scale = (2.0 * d_M_PI) / (m_length * m_randomness); m_log_randomness = 2.0 * log(m_randomness); @@ -1081,7 +1084,7 @@ class Sketch m_has_last = false; m_p = 0.0; if (m_scale != 0.0) { - m_rand.seed(0); + m_rand.seed(m_seed); m_segmented.rewind(path_id); } else { m_source->rewind(path_id); @@ -1101,6 +1104,7 @@ class Sketch RandomNumberGenerator m_rand; double m_p_scale; double m_log_randomness; + int m_seed; }; #endif // MPL_PATH_CONVERTERS_H diff --git a/src/py_converters.cpp b/src/py_converters.cpp index 04382c5f94d0..8dff06939d9a 100644 --- a/src/py_converters.cpp +++ b/src/py_converters.cpp @@ -451,13 +451,16 @@ int convert_sketch_params(PyObject *obj, void *sketchp) { SketchParams *sketch = (SketchParams *)sketchp; + sketch->seed=0; // default + if (obj == NULL || obj == Py_None) { sketch->scale = 0.0; } else if (!PyArg_ParseTuple(obj, - "ddd:sketch_params", + "ddd|i:sketch_params", &sketch->scale, &sketch->length, - &sketch->randomness)) { + &sketch->randomness, + &sketch->seed)) { return 0; } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy