8000 Extend `_val_or_rc` to support multiply names · matplotlib/matplotlib@39eef79 · GitHub
[go: up one dir, main page]

Skip to content

Commit 39eef79

Browse files
committed
Extend _val_or_rc to support multiply names
`_val_or_rc` now accept multiple rc names and return val or the first non-None value in rcParams. Returns last rc name if all other are None. Also, simplified code in `Tick` for grid lines creatation
1 parent 42e0054 commit 39eef79

File tree

2 files changed

+26
-30
lines changed

2 files changed

+26
-30
lines changed

lib/matplotlib/__init__.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1348,11 +1348,18 @@ def is_interactive():
13481348
return rcParams['interactive']
13491349

13501350

1351-
def _val_or_rc(val, rc_name):
1351+
def _val_or_rc(val, *rc_names):
13521352
"""
1353-
If *val* is None, return ``mpl.rcParams[rc_name]``, otherwise return val.
1353+
If *val* is None, the first not-None value in ``mpl.rcParams[rc_names[i]]``.
1354+
If all are None returns ``mpl.rcParams[rc_names[-1]]``.
13541355
"""
1355-
return val if val is not None else rcParams[rc_name]
1356+
if val is not None:
1357+
return val
1358+
1359+
for rc_name in rc_names[:-1]:
1360+
if rcParams[rc_name] is not None:
1361+
return rcParams[rc_name]
1362+
return rcParams[rc_names[-1]]
13561363

13571364

13581365
def _init_tests():

lib/matplotlib/axis. 8000 py

Lines changed: 16 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -127,35 +127,26 @@ def __init__(
127127

128128
grid_color = (
129129
mpl._val_or_rc(
130-
grid_color, f"grid.{xaxis_yaxis}.{major_minor}.color"
131-
)
132-
if mpl.rcParams[f"grid.{xaxis_yaxis}.{major_minor}.color"] is not None
133-
else (
134-
mpl._val_or_rc(grid_color, f"grid.{major_minor}.color")
135-
if mpl.rcParams[f"grid.{major_minor}.color"] is not None
136-
else mpl._val_or_rc(grid_color, "grid.color")
130+
grid_color,
131+
f"grid.{xaxis_yaxis}.{major_minor}.color",
132+
f"grid.{major_minor}.color",
133+
"grid.color",
137134
)
138135
)
139136
grid_linestyle = (
140137
mpl._val_or_rc(
141-
grid_linestyle, f"grid.{xaxis_yaxis}.{major_minor}.linestyle"
142-
)
143-
if mpl.rcParams[f"grid.{xaxis_yaxis}.{major_minor}.linestyle"] is not None
144-
else (
145-
mpl._val_or_rc(grid_linestyle, f"grid.{major_minor}.linestyle")
146-
if mpl.rcParams[f"grid.{major_minor}.linestyle"] is not None
147-
else mpl._val_or_rc(grid_linestyle, "grid.linestyle")
138+
grid_linestyle,
139+
f"grid.{xaxis_yaxis}.{major_minor}.linestyle",
140+
f"grid.{major_minor}.linestyle",
141+
"grid.linestyle",
148142
)
149143
)
150144
grid_linewidth = (
151145
mpl._val_or_rc(
152-
grid_linewidth, f"grid.{xaxis_yaxis}.{major_minor}.linewidth"
153-
)
154-
if mpl.rcParams[f"grid.{xaxis_yaxis}.{major_minor}.linewidth"] is not None
155-
else (
156-
mpl._val_or_rc(grid_linewidth, f"grid.{major_minor}.linewidth")
157-
if mpl.rcParams[f"grid.{major_minor}.linewidth"] is not None
158-
else mpl._val_or_rc(grid_linewidth, "grid.linewidth")
146+
grid_linewidth,
147+
f"grid.{xaxis_yaxis}.{major_minor}.linewidth",
148+
f"grid.{major_minor}.linewidth",
149+
"grid.linewidth",
159150
)
160151
)
161152
if grid_alpha is None and not mcolors._has_alpha_channel(grid_color):
@@ -165,12 +156,10 @@ def __init__(
165156
# grid(color=(1, 1, 1, 0.5), alpha=rcParams['grid.alpha'])
166157
# so the that the rcParams default would override color alpha.
167158
grid_alpha = (
168-
mpl.rcParams[f"grid.{xaxis_yaxis}.{major_minor}.alpha"]
169-
if mpl.rcParams[f"grid.{xaxis_yaxis}.{major_minor}.alpha"] is not None
170-
else (
171-
mpl.rcParams[f"grid.{major_minor}.alpha"]
172-
if mpl.rcParams[f"grid.{major_minor}.alpha"] is not None
173-
else mpl.rcParams["grid.alpha"]
159+
mpl._val_or_rc(
160+
mpl.rcParams[f"grid.{xaxis_yaxis}.{major_minor}.alpha"], # grid_alpha is None
161+
f"grid.{major_minor}.alpha",
162+
"grid.alpha",
174163
)
175164
)
176165
grid_kw = {k[5:]: v for k, v in kwargs.items()}

0 commit comments

Comments
 (0)
0