Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit e1cb5d2

Browse filesBrowse files
committed
Further factor out rcdefaults application in bxp().
1 parent 47d75f2 commit e1cb5d2
Copy full SHA for e1cb5d2

File tree

Expand file treeCollapse file tree

1 file changed

+25
-57
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+25
-57
lines changed

‎lib/matplotlib/axes/_axes.py

Copy file name to clipboardExpand all lines: lib/matplotlib/axes/_axes.py
+25-57Lines changed: 25 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -3884,70 +3884,38 @@ def bxp(self, bxpstats, positions=None, widths=None, vert=True,
38843884
zorder = mlines.Line2D.zorder
38853885

38863886
zdelta = 0.1
3887+
3888+
def with_rcdefaults(subkey, explicit, zdelta=0):
3889+
d = {k.split('.')[-1]: v for k, v in rcParams.items()
3890+
if k.startswith(f'boxplot.{subkey}')}
3891+
d['zorder'] = zorder + zdelta
3892+
if explicit is not None:
3893+
d.update(explicit)
3894+
return d
3895+
38873896
# box properties
3888-
final_boxprops = dict(
3889-
linestyle=rcParams['boxplot.boxprops.linestyle'],
3890-
linewidth=rcParams['boxplot.boxprops.linewidth'],
3891-
)
38923897
if patch_artist:
3893-
final_boxprops.update(
3898+
final_boxprops = dict(
3899+
linestyle=rcParams['boxplot.boxprops.linestyle'],
3900+
linewidth=rcParams['boxplot.boxprops.linewidth'],
38943901
edgecolor=rcParams['boxplot.boxprops.color'],
38953902
facecolor=('white' if rcParams['_internal.classic_mode'] else
38963903
rcParams['patch.facecolor']),
3904+
zorder=zorder,
38973905
)
3906+
if boxprops is not None:
3907+
final_boxprops.update(boxprops)
38983908
else:
3899-
final_boxprops.update(
3900-
color=rcParams['boxplot.boxprops.color'],
3901-
)
3902-
3903-
final_boxprops['zorder'] = zorder
3904-
if boxprops is not None:
3905-
final_boxprops.update(boxprops)
3906-
3907-
# whisker properties
3908-
final_whiskerprops = {
3909-
k.split('.')[-1]: v for k, v in rcParams.items()
3910-
if k.startswith('boxplot.whiskerprops')
3911-
}
3912-
final_whiskerprops['zorder'] = zorder
3913-
if whiskerprops is not None:
3914-
final_whiskerprops.update(whiskerprops)
3915-
# cap properties
3916-
final_capprops = {
3917-
k.split('.')[-1]: v for k, v in rcParams.items()
3918-
if k.startswith('boxplot.capprops')
3919-
}
3920-
final_capprops['zorder'] = zorder
3921-
if capprops is not None:
3922-
final_capprops.update(capprops)
3923-
# flier properties
3924-
final_flierprops = {
3925-
k.split('.')[-1]: v for k, v in rcParams.items()
3926-
if k.startswith('boxplot.flierprops')
3927-
}
3928-
final_flierprops['zorder'] = zorder
3929-
if flierprops is not None:
3930-
final_flierprops.update(flierprops)
3931-
# median line properties
3932-
final_medianprops = {
3933-
k.split('.')[-1]: v for k, v in rcParams.items()
3934-
if k.startswith('boxplot.medianprops')
3935-
}
3936-
final_medianprops['zorder'] = zorder + zdelta
3937-
if medianprops is not None:
3938-
final_medianprops.update(medianprops)
3939-
# mean (line or point) properties
3940-
final_meanprops = {
3941-
k.split('.')[-1]: v for k, v in rcParams.items()
3942-
if k.startswith('boxplot.meanprops')
3943-
}
3944-
if meanline:
3945-
final_meanprops['marker'] = ''
3946-
else:
3947-
final_meanprops['linestyle'] = ''
3948-
final_meanprops['zorder'] = zorder + zdelta
3949-
if meanprops is not None:
3950-
final_meanprops.update(meanprops)
3909+
final_boxprops = with_rcdefaults('boxprops', boxprops)
3910+
final_whiskerprops = with_rcdefaults('whiskerprops', whiskerprops)
3911+
final_capprops = with_rcdefaults('capprops', capprops)
3912+
final_flierprops = with_rcdefaults('flierprops', flierprops)
3913+
final_medianprops = with_rcdefaults('medianprops', medianprops, zdelta)
3914+
final_meanprops = with_rcdefaults('meanprops', meanprops, zdelta)
3915+
removed_prop = 'marker' if meanline else 'linestyle'
3916+
# Only remove the property if it's not set explicitly as a parameter.
3917+
if meanprops is None or removed_prop not in meanprops:
3918+
final_meanprops[removed_prop] = ''
39513919

39523920
def to_vc(xs, ys):
39533921
# convert arguments to verts and codes, append (0, 0) (ignored).

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.