From 06665bf5861a2c782c0115f686a2e2bdac529206 Mon Sep 17 00:00:00 2001 From: rjtk Date: Tue, 13 Jun 2023 20:42:47 -0700 Subject: [PATCH] Allow separate config of minor grid params in matplotlibrc. --- lib/matplotlib/axis.py | 13 +++++++++---- lib/matplotlib/mpl-data/matplotlibrc | 4 ++++ lib/matplotlib/rcsetup.py | 5 +++++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/lib/matplotlib/axis.py b/lib/matplotlib/axis.py index e1cb06f9341a..279c1ce56879 100644 --- a/lib/matplotlib/axis.py +++ b/lib/matplotlib/axis.py @@ -139,19 +139,24 @@ def __init__( zorder = mlines.Line2D.zorder self._zorder = zorder + if major: + grid_name = "grid" + else: + grid_name = "grid.minor" + if grid_color is None: - grid_color = mpl.rcParams["grid.color"] + grid_color = mpl.rcParams[f"{grid_name}.color"] if grid_linestyle is None: - grid_linestyle = mpl.rcParams["grid.linestyle"] + grid_linestyle = mpl.rcParams[f"{grid_name}.linestyle"] if grid_linewidth is None: - grid_linewidth = mpl.rcParams["grid.linewidth"] + grid_linewidth = mpl.rcParams[f"{grid_name}.linewidth"] if grid_alpha is None and not mcolors._has_alpha_channel(grid_color): # alpha precedence: kwarg > color alpha > rcParams['grid.alpha'] # Note: only resolve to rcParams if the color does not have alpha # otherwise `grid(color=(1, 1, 1, 0.5))` would work like # grid(color=(1, 1, 1, 0.5), alpha=rcParams['grid.alpha']) # so the that the rcParams default would override color alpha. - grid_alpha = mpl.rcParams["grid.alpha"] + grid_alpha = mpl.rcParams[f"{grid_name}.alpha"] grid_kw = {k[5:]: v for k, v in kwargs.items()} self.tick1line = mlines.Line2D( diff --git a/lib/matplotlib/mpl-data/matplotlibrc b/lib/matplotlib/mpl-data/matplotlibrc index 86f70a23dacd..6c558464b2d1 100644 --- a/lib/matplotlib/mpl-data/matplotlibrc +++ b/lib/matplotlib/mpl-data/matplotlibrc @@ -523,6 +523,10 @@ #grid.linewidth: 0.8 # in points #grid.alpha: 1.0 # transparency, between 0.0 and 1.0 +#grid.minor.color: "#b0b0b0" # minor grid color +#grid.minor.linestyle: - # solid +#grid.minor.linewidth: 0.8 # in points +#grid.minor.alpha: 1.0 # transparency, between 0.0 and 1.0 ## *************************************************************************** ## * LEGEND * diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index 663ff4b70536..50661ae39112 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -1154,6 +1154,11 @@ def _convert_validator_spec(key, conv): "grid.linewidth": validate_float, # in points "grid.alpha": validate_float, + "grid.minor.color": validate_color, # minor grid color + "grid.minor.linestyle": _validate_linestyle, # solid + "grid.minor.linewidth": validate_float, # in points + "grid.minor.alpha": validate_float, + ## figure props # figure title "figure.titlesize": validate_fontsize,