diff --git a/doc/_quartodoc.yml b/doc/_quartodoc.yml index 720ed6d0a..9c2dd3d6c 100644 --- a/doc/_quartodoc.yml +++ b/doc/_quartodoc.yml @@ -520,6 +520,9 @@ quartodoc: - strip_background_x - strip_background_y - strip_placement + - strip_switch_pad + - strip_switch_pad_x + - strip_switch_pad_y - strip_text - strip_text_x - strip_text_x_bottom diff --git a/plotnine/_mpl/layout_manager/_plot_side_space.py b/plotnine/_mpl/layout_manager/_plot_side_space.py index 4756434eb..c25d3e0f5 100644 --- a/plotnine/_mpl/layout_manager/_plot_side_space.py +++ b/plotnine/_mpl/layout_manager/_plot_side_space.py @@ -15,7 +15,6 @@ from functools import cached_property from typing import TYPE_CHECKING, Literal -from plotnine._utils import MARGIN_SIDE from plotnine.exceptions import PlotnineError from plotnine.facets import facet_grid, facet_null, facet_wrap @@ -152,6 +151,26 @@ def _axis_ticks_and_text(self) -> float: """ return self.sum_incl("axis_ticks") - self.sum_upto("axis_text") + def _strip_switch_pad(self, axis: Literal["x", "y"]) -> float: + """ + Reserved gap between a shared axis and a strip placed beyond it + + The gap is non-zero only for `strip_placement="outside"` on a + side that carries both a strip and an axis; otherwise zero. The + themeable value is in points and is returned as a fraction of + the relevant figure dimension (height for x strips, width for y). + """ + theme = self.items.plot.theme + if theme.getp("strip_placement") != "outside": + return 0 + strip_breadth: float = self.strip_text # pyright: ignore[reportAttributeAccessIssue] + if not (strip_breadth and self._axis_ticks_and_text): + return 0 + pad_pt = theme.getp(f"strip_switch_pad_{axis}") or 0 + W, H = theme.getp("figure_size") + dim = H if axis == "x" else W + return (pad_pt / 72) / dim + def strip_band_offset(self, member: Literal["strip", "axis"]) -> float: """ Outward offset for one member of a shared strip/axis band @@ -176,8 +195,9 @@ def strip_band_offset(self, member: Literal["strip", "axis"]) -> float: placement = self.items.plot.theme.getp("strip_placement") if placement == "inside": return 0 if member == "strip" else strip_breadth - # "outside" - return axis_breadth if member == "strip" else 0 + # "outside": the strip clears the axis, plus the switch pad + pad: float = self.strip_switch_pad # pyright: ignore[reportAttributeAccessIssue] + return axis_breadth + pad if member == "strip" else 0 class left_space(_plot_side_space): @@ -234,9 +254,11 @@ class left_space(_plot_side_space): """ legend: float = 0 legend_box_spacing: float = 0 + axis_title_margin_left: float = 0 + """Outer (edge-facing) margin of the y-axis title""" axis_title: float = 0 - axis_title_margin: float = 0 - """Margin to the right of the y-axis title (panel-facing side)""" + axis_title_margin_right: float = 0 + """Panel-facing margin of the y-axis title""" axis_title_alignment: float = 0 """ Space added to align the axis title with others in a composition @@ -245,10 +267,14 @@ class left_space(_plot_side_space): the difference between the largest and smallest axis_title_clearance among the items in the composition. """ + axis_text_margin_left: float = 0 + """Outer (edge-facing) margin of the y-axis text""" axis_text: float = 0 - axis_text_margin: float = 0 - """Margin to the right of the y-axis text (panel-facing side)""" + axis_text_margin_right: float = 0 + """Panel-facing margin of the y-axis text""" axis_ticks: float = 0 + strip_switch_pad: float = 0 + """Gap between a shared axis and a strip beyond it (outside placement)""" strip_text: float = 0 """Outward extent of a left facet strip""" @@ -269,24 +295,23 @@ def _calculate(self): self.legend = self.legend_width self.legend_box_spacing = theme.getp("legend_box_spacing") - # The text<->panel gap is the right margin of the y text/title; it - # sits on the panel-facing (right) side of the left axis. + # A left y-axis reads its left (outer) and right (panel-facing) + # margins directly. if items.axis_title_y_left: self.axis_title = geometry.width(items.axis_title_y_left) - self.axis_title_margin = getattr( - theme.get_margin("axis_title_y_left").fig, - MARGIN_SIDE["left"], - ) + m = theme.get_margin("axis_title_y_left").fig + self.axis_title_margin_left = m.l + self.axis_title_margin_right = m.r self.axis_text = items.axis_text_y_left if self.axis_text: - self.axis_text_margin = getattr( - theme.get_margin("axis_text_y_left").fig, - MARGIN_SIDE["left"], - ) + m = theme.get_margin("axis_text_y_left").fig + self.axis_text_margin_left = m.l + self.axis_text_margin_right = m.r self.axis_ticks = items.axis_ticks_y_left self.strip_text = items.strip_text_y("left") + self.strip_switch_pad = self._strip_switch_pad("y") # Adjust plot_margin to make room for ylabels that protude well # beyond the axes @@ -372,14 +397,20 @@ class right_space(_plot_side_space): margin_alignment: float = 0 legend: float = 0 legend_box_spacing: float = 0 + axis_title_margin_right: float = 0 + """Outer (edge-facing) margin of the y-axis title""" axis_title: float = 0 - axis_title_margin: float = 0 - """Margin to the left of the y-axis title (panel-facing side)""" + axis_title_margin_left: float = 0 + """Panel-facing margin of the y-axis title""" axis_title_alignment: float = 0 + axis_text_margin_right: float = 0 + """Outer (edge-facing) margin of the y-axis text""" axis_text: float = 0 - axis_text_margin: float = 0 - """Margin to the left of the y-axis text (panel-facing side)""" + axis_text_margin_left: float = 0 + """Panel-facing margin of the y-axis text""" axis_ticks: float = 0 + strip_switch_pad: float = 0 + """Gap between a shared axis and a strip beyond it (outside placement)""" strip_text: float = 0 """Outward extent of a right facet strip (next to the panel by default)""" @@ -402,23 +433,21 @@ def _calculate(self): self.strip_text = items.strip_text_y("right") - # Space consumed by a y-axis on the right. The text<->panel gap is the - # left margin of the y text/title (the edge facing the panel to the - # left). + # A right y-axis reads its right (outer) and left (panel-facing) + # margins directly. if items.axis_title_y_right: self.axis_title = geometry.width(items.axis_title_y_right) - self.axis_title_margin = getattr( - theme.get_margin("axis_title_y_right").fig, - MARGIN_SIDE["right"], - ) + m = theme.get_margin("axis_title_y_right").fig + self.axis_title_margin_right = m.r + self.axis_title_margin_left = m.l self.axis_text = items.axis_text_y_right if self.axis_text: - self.axis_text_margin = getattr( - theme.get_margin("axis_text_y_right").fig, - MARGIN_SIDE["right"], - ) + m = theme.get_margin("axis_text_y_right").fig + self.axis_text_margin_right = m.r + self.axis_text_margin_left = m.l self.axis_ticks = items.axis_ticks_y_right + self.strip_switch_pad = self._strip_switch_pad("y") # Adjust plot_margin to make room for ylabels that protude well # beyond the axes @@ -520,14 +549,20 @@ class top_space(_plot_side_space): plot_subtitle_margin_bottom: float = 0 legend: float = 0 legend_box_spacing: float = 0 + axis_title_margin_top: float = 0 + """Outer (edge-facing) margin of the x-axis title""" axis_title: float = 0 - axis_title_margin: float = 0 - """Margin below the x-axis title (panel-facing side)""" + axis_title_margin_bottom: float = 0 + """Panel-facing margin of the x-axis title""" axis_title_alignment: float = 0 + axis_text_margin_top: float = 0 + """Outer (edge-facing) margin of the x-axis text""" axis_text: float = 0 - axis_text_margin: float = 0 - """Margin below the x-axis text (panel-facing side)""" + axis_text_margin_bottom: float = 0 + """Panel-facing margin of the x-axis text""" axis_ticks: float = 0 + strip_switch_pad: float = 0 + """Gap between a shared axis and a strip beyond it (outside placement)""" strip_text: float = 0 """Outward extent of a top facet strip (next to the panel by default)""" @@ -564,22 +599,21 @@ def _calculate(self): self.strip_text = items.strip_text_x("top") - # Space consumed by an x-axis on the top. The text<->panel gap is the - # bottom margin of the x text/title (the edge facing the panel below). + # A top x-axis reads its top (outer) and bottom (panel-facing) + # margins directly. if items.axis_title_x_top: self.axis_title = geometry.height(items.axis_title_x_top) - self.axis_title_margin = getattr( - theme.get_margin("axis_title_x_top").fig, - MARGIN_SIDE["top"], - ) + m = theme.get_margin("axis_title_x_top").fig + self.axis_title_margin_top = m.t + self.axis_title_margin_bottom = m.b self.axis_text = items.axis_text_x_top if self.axis_text: - self.axis_text_margin = getattr( - theme.get_margin("axis_text_x_top").fig, - MARGIN_SIDE["top"], - ) + m = theme.get_margin("axis_text_x_top").fig + self.axis_text_margin_top = m.t + self.axis_text_margin_bottom = m.b self.axis_ticks = items.axis_ticks_x_top + self.strip_switch_pad = self._strip_switch_pad("x") # Adjust plot_margin to make room for ylabels that protude well # beyond the axes @@ -684,9 +718,11 @@ class bottom_space(_plot_side_space): plot_caption_margin_top: float = 0 legend: float = 0 legend_box_spacing: float = 0 + axis_title_margin_bottom: float = 0 + """Outer (edge-facing) margin of the x-axis title""" axis_title: float = 0 - axis_title_margin: float = 0 - """Margin above the x-axis title (panel-facing side)""" + axis_title_margin_top: float = 0 + """Panel-facing margin of the x-axis title""" axis_title_alignment: float = 0 """ Space added to align the axis title with others in a composition @@ -696,10 +732,14 @@ class bottom_space(_plot_side_space): composition. It's amount is the difference in height between this axis text (and it's margins) and the tallest axis text (and it's margin). """ + axis_text_margin_bottom: float = 0 + """Outer (edge-facing) margin of the x-axis text""" axis_text: float = 0 - axis_text_margin: float = 0 - """Margin above the x-axis text (panel-facing side)""" + axis_text_margin_top: float = 0 + """Panel-facing margin of the x-axis text""" axis_ticks: float = 0 + strip_switch_pad: float = 0 + """Gap between a shared axis and a strip beyond it (outside placement)""" strip_text: float = 0 """Outward extent of a bottom facet strip""" @@ -734,23 +774,22 @@ def _calculate(self): self.legend = self.legend_height self.legend_box_spacing = theme.getp("legend_box_spacing") * F - # The text<->panel gap is the top margin of the x text/title; it - # sits on the panel-facing (top) side of the bottom axis. + # A bottom x-axis reads its bottom (outer) and top (panel-facing) + # margins directly. if items.axis_title_x_bottom: self.axis_title = geometry.height(items.axis_title_x_bottom) - self.axis_title_margin = getattr( - theme.get_margin("axis_title_x_bottom").fig, - MARGIN_SIDE["bottom"], - ) + m = theme.get_margin("axis_title_x_bottom").fig + self.axis_title_margin_bottom = m.b + self.axis_title_margin_top = m.t self.axis_text = items.axis_text_x_bottom if self.axis_text: - self.axis_text_margin = getattr( - theme.get_margin("axis_text_x_bottom").fig, - MARGIN_SIDE["bottom"], - ) + m = theme.get_margin("axis_text_x_bottom").fig + self.axis_text_margin_bottom = m.b + self.axis_text_margin_top = m.t self.axis_ticks = items.axis_ticks_x_bottom self.strip_text = items.strip_text_x("bottom") + self.strip_switch_pad = self._strip_switch_pad("x") # Adjust plot_margin to make room for ylabels that protude well # beyond the axes diff --git a/plotnine/themes/theme.py b/plotnine/themes/theme.py index bc168b0bc..74b47f3dc 100644 --- a/plotnine/themes/theme.py +++ b/plotnine/themes/theme.py @@ -245,6 +245,9 @@ def __init__( strip_align_x=None, strip_align_y=None, strip_align=None, + strip_switch_pad_x=None, + strip_switch_pad_y=None, + strip_switch_pad=None, strip_placement=None, svg_usefonts=None, **kwargs, diff --git a/plotnine/themes/theme_gray.py b/plotnine/themes/theme_gray.py index ceae4841a..afb43ab68 100644 --- a/plotnine/themes/theme_gray.py +++ b/plotnine/themes/theme_gray.py @@ -56,25 +56,36 @@ def __init__(self, base_size=11, base_family=None): axis_line_x=element_blank(), axis_line_y=element_blank(), axis_text=element_text(size=base_size * 0.8, color="#4D4D4D"), - axis_text_x=element_text( - va="top", margin=margin(t=fifth_line, b=fifth_line) + axis_text_x_bottom=element_text( + va="top", margin=margin(t=fifth_line) ), - axis_text_y=element_text( - ha="right", margin=margin(r=fifth_line, l=fifth_line) + axis_text_x_top=element_text( + va="bottom", margin=margin(b=fifth_line) + ), + axis_text_y_left=element_text( + ha="right", margin=margin(r=fifth_line) + ), + axis_text_y_right=element_text( + ha="left", margin=margin(l=fifth_line) ), axis_ticks=element_line(color="#333333"), axis_ticks_length=0, axis_ticks_length_major=quarter_line, axis_ticks_length_minor=eighth_line, axis_ticks_minor=element_blank(), - axis_title_x=element_text( - va="bottom", ha="center", margin=margin(t=m, b=m, unit="fig") + axis_title_x=element_text(ha="center"), + axis_title_x_bottom=element_text( + va="bottom", margin=margin(t=m, unit="fig") ), - axis_title_y=element_text( - angle=90, - va="center", - ha="left", - margin=margin(r=m, l=m, unit="fig"), + axis_title_x_top=element_text( + va="bottom", margin=margin(b=m, unit="fig") + ), + axis_title_y=element_text(angle=90, va="center"), + axis_title_y_left=element_text( + ha="left", margin=margin(r=m, unit="fig") + ), + axis_title_y_right=element_text( + ha="left", margin=margin(l=m, unit="fig") ), dpi=get_option("dpi"), figure_size=get_option("figure_size"), @@ -145,6 +156,7 @@ def __init__(self, base_size=11, base_family=None): plot_tag_location="margin", plot_tag_position="topleft", strip_align=0, + strip_switch_pad=base_size / 4, strip_placement="inside", strip_background=element_rect(color="none", fill="#D9D9D9"), strip_background_x=element_rect(width=1), diff --git a/plotnine/themes/theme_matplotlib.py b/plotnine/themes/theme_matplotlib.py index 6e3f7f8a3..552e9d7a8 100644 --- a/plotnine/themes/theme_matplotlib.py +++ b/plotnine/themes/theme_matplotlib.py @@ -47,19 +47,33 @@ def __init__(self, rc=None, fname=None, use_defaults=True): margin=margin(), ), aspect_ratio=get_option("aspect_ratio"), - axis_text=element_text( - size=base_size * 0.8, - margin=margin(t=2.4, b=2.4, r=2.4, l=2.4, unit="pt"), + axis_text=element_text(size=base_size * 0.8), + axis_text_x_bottom=element_text( + va="top", margin=margin(t=2.4, unit="pt") + ), + axis_text_x_top=element_text( + va="bottom", margin=margin(b=2.4, unit="pt") + ), + axis_text_y_left=element_text( + ha="right", margin=margin(r=2.4, unit="pt") + ), + axis_text_y_right=element_text( + ha="left", margin=margin(l=2.4, unit="pt") ), - axis_title_x=element_text( - va="bottom", ha="center", margin=margin(t=m, b=m, unit="fig") + axis_title_x=element_text(ha="center"), + axis_title_x_bottom=element_text( + va="bottom", margin=margin(t=m, unit="fig") + ), + axis_title_x_top=element_text( + va="bottom", margin=margin(b=m, unit="fig") ), axis_line=element_blank(), - axis_title_y=element_text( - angle=90, - va="center", - ha="left", - margin=margin(r=m, l=m, unit="fig"), + axis_title_y=element_text(angle=90, va="center"), + axis_title_y_left=element_text( + ha="left", margin=margin(r=m, unit="fig") + ), + axis_title_y_right=element_text( + ha="right", margin=margin(l=m, unit="fig") ), dpi=get_option("dpi"), figure_size=get_option("figure_size"), diff --git a/plotnine/themes/theme_seaborn.py b/plotnine/themes/theme_seaborn.py index a617ba50d..67d193bc9 100644 --- a/plotnine/themes/theme_seaborn.py +++ b/plotnine/themes/theme_seaborn.py @@ -54,24 +54,32 @@ def __init__( dpi=get_option("dpi"), figure_size=get_option("figure_size"), text=element_text(size=base_size, rotation=0, margin={}), - axis_text=element_text( - size=base_size * 0.8, - margin=margin( - t=line_margin, - b=line_margin, - l=line_margin, - r=line_margin, - unit="pt", - ), - ), - axis_title_x=element_text( - va="bottom", ha="center", margin=margin(t=m, b=m, unit="fig") - ), - axis_title_y=element_text( - angle=90, - va="center", - ha="left", - margin=margin(r=m, l=m, unit="fig"), + axis_text=element_text(size=base_size * 0.8), + axis_text_x_bottom=element_text( + va="top", margin=margin(t=line_margin, unit="pt") + ), + axis_text_x_top=element_text( + va="bottom", margin=margin(b=line_margin, unit="pt") + ), + axis_text_y_left=element_text( + ha="right", margin=margin(r=line_margin, unit="pt") + ), + axis_text_y_right=element_text( + ha="left", margin=margin(l=line_margin, unit="pt") + ), + axis_title_x=element_text(ha="center"), + axis_title_x_bottom=element_text( + va="bottom", margin=margin(t=m, unit="fig") + ), + axis_title_x_top=element_text( + va="bottom", margin=margin(b=m, unit="fig") + ), + axis_title_y=element_text(angle=90, va="center"), + axis_title_y_left=element_text( + ha="left", margin=margin(r=m, unit="fig") + ), + axis_title_y_right=element_text( + ha="right", margin=margin(l=m, unit="fig") ), legend_box_margin=0, legend_box_spacing=m * 3, # figure units diff --git a/plotnine/themes/themeable.py b/plotnine/themes/themeable.py index 8b6963f89..ff48c1860 100644 --- a/plotnine/themes/themeable.py +++ b/plotnine/themes/themeable.py @@ -550,11 +550,6 @@ class axis_title_x_bottom(themeable): Parameters ---------- theme_element : element_text - - Notes - ----- - The gap to the panel is set by the top margin (`t`), as for any - x-axis title; the other margins are ignored. """ def apply_figure(self, figure: Figure, targets: ThemeTargets): @@ -576,11 +571,6 @@ class axis_title_x_top(themeable): Parameters ---------- theme_element : element_text - - Notes - ----- - The gap to the panel is set by the bottom margin (`b`) — the edge - that faces the panel below; the other margins are ignored. """ def apply_figure(self, figure: Figure, targets: ThemeTargets): @@ -601,13 +591,6 @@ class axis_title_x(axis_title_x_top, axis_title_x_bottom): Parameters ---------- theme_element : element_text - - Notes - ----- - Only the margin on the side that faces the panel has an effect: - the top margin (`t`) when the axis is on the bottom, the bottom - margin (`b`) when it is on the top. Set both to cover either - position. """ @@ -618,11 +601,6 @@ class axis_title_y_left(themeable): Parameters ---------- theme_element : element_text - - Notes - ----- - The gap to the panel is set by the right margin (`r`), as for any - y-axis title; the other margins are ignored. """ def apply_figure(self, figure: Figure, targets: ThemeTargets): @@ -644,11 +622,6 @@ class axis_title_y_right(themeable): Parameters ---------- theme_element : element_text - - Notes - ----- - The gap to the panel is set by the left margin (`l`) — the edge - that faces the panel to the left; the other margins are ignored. """ def apply_figure(self, figure: Figure, targets: ThemeTargets): @@ -669,13 +642,6 @@ class axis_title_y(axis_title_y_left, axis_title_y_right): Parameters ---------- theme_element : element_text - - Notes - ----- - Only the margin on the side that faces the panel has an effect: - the right margin (`r`) when the axis is on the left, the left - margin (`l`) when it is on the right. Set both to cover either - position. """ @@ -686,14 +652,6 @@ class axis_title(axis_title_x, axis_title_y): Parameters ---------- theme_element : element_text - - Notes - ----- - Only the margin on the side that faces the panel has an effect. - For the x-axis that is the top margin (`t`) on the bottom or the - bottom margin (`b`) on the top; for the y-axis the right margin - (`r`) on the left or the left margin (`l`) on the right. Set both - margins of each axis to cover either position. """ @@ -1132,11 +1090,6 @@ class axis_text_x_bottom(MixinSequenceOfValues): Parameters ---------- theme_element : element_text - - Notes - ----- - The gap to the panel is set by the top margin (`t`), as for any - x-axis text; the other margins are ignored. """ def apply_ax(self, ax: Axes): @@ -1162,11 +1115,6 @@ class axis_text_x_top(MixinSequenceOfValues): Parameters ---------- theme_element : element_text - - Notes - ----- - The gap to the panel is set by the bottom margin (`b`) — the edge - that faces the panel below; the other margins are ignored. """ def apply_ax(self, ax: Axes): @@ -1190,19 +1138,6 @@ class axis_text_x(axis_text_x_top, axis_text_x_bottom): Parameters ---------- theme_element : element_text - - Notes - ----- - Only the margin on the side that faces the panel has an effect: - the top margin (`t`) when the axis is on the bottom, the bottom - margin (`b`) when it is on the top. Set both to cover either - position. e.g. - - ```python - theme(axis_text_x=element_text(margin={"t": 5, "b": 5, "units": "pt"})) - ``` - - puts a 5 point gap between the labels and the panel on either side. """ @@ -1213,11 +1148,6 @@ class axis_text_y_left(MixinSequenceOfValues): Parameters ---------- theme_element : element_text - - Notes - ----- - The gap to the panel is set by the right margin (`r`), as for any - y-axis text; the other margins are ignored. """ def apply_ax(self, ax: Axes): @@ -1241,11 +1171,6 @@ class axis_text_y_right(MixinSequenceOfValues): Parameters ---------- theme_element : element_text - - Notes - ----- - The gap to the panel is set by the left margin (`l`) — the edge - that faces the panel to the left; the other margins are ignored. """ def apply_ax(self, ax: Axes): @@ -1271,19 +1196,6 @@ class axis_text_y(axis_text_y_left, axis_text_y_right): Parameters ---------- theme_element : element_text - - Notes - ----- - Only the margin on the side that faces the panel has an effect: - the right margin (`r`) when the axis is on the left, the left - margin (`l`) when it is on the right. Set both to cover either - position. e.g. - - ```python - theme(axis_text_y=element_text(margin={"r": 5, "l": 5, "units": "pt"})) - ``` - - puts a 5 point gap between the labels and the panel on either side. """ @@ -1294,22 +1206,6 @@ class axis_text(axis_text_x, axis_text_y): Parameters ---------- theme_element : element_text - - Notes - ----- - Only the margin on the side that faces the panel has an effect. - For the x-axis that is the top margin (`t`) on the bottom or the - bottom margin (`b`) on the top; for the y-axis the right margin - (`r`) on the left or the left margin (`l`) on the right. Set both - margins of each axis to cover either position. e.g. - - ```python - theme(axis_text=element_text( - margin={"t": 5, "b": 5, "r": 5, "l": 5, "units": "pt"} - )) - ``` - - puts a 5 point gap between the labels and the panel on every side. """ @@ -2865,6 +2761,45 @@ class strip_align(strip_align_x, strip_align_y): """ +class strip_switch_pad_x(themeable): + """ + Space between an x-axis and a strip placed beyond it on the same side + + Parameters + ---------- + theme_element : float + Size in points. Only has an effect when + `strip_placement="outside"` and an axis shares the strip's + side (top or bottom). + """ + + +class strip_switch_pad_y(themeable): + """ + Space between a y-axis and a strip placed beyond it on the same side + + Parameters + ---------- + theme_element : float + Size in points. Only has an effect when + `strip_placement="outside"` and an axis shares the strip's + side (left or right). + """ + + +class strip_switch_pad(strip_switch_pad_x, strip_switch_pad_y): + """ + Space between an axis and a strip placed beyond it on the same side + + Parameters + ---------- + theme_element : float + Size in points. Only has an effect when + `strip_placement="outside"` and an axis shares the strip's + side. + """ + + class strip_placement(themeable): """ Where a facet strip sits relative to an axis on the same side diff --git a/tests/baseline_images/test_strip_placement/facet_grid_right_outside.png b/tests/baseline_images/test_strip_placement/facet_grid_right_outside.png index e9da18613..8c388e453 100644 Binary files a/tests/baseline_images/test_strip_placement/facet_grid_right_outside.png and b/tests/baseline_images/test_strip_placement/facet_grid_right_outside.png differ diff --git a/tests/baseline_images/test_strip_placement/facet_grid_top_outside.png b/tests/baseline_images/test_strip_placement/facet_grid_top_outside.png index 11fe39c4c..2221b1e05 100644 Binary files a/tests/baseline_images/test_strip_placement/facet_grid_top_outside.png and b/tests/baseline_images/test_strip_placement/facet_grid_top_outside.png differ diff --git a/tests/baseline_images/test_strip_placement/facet_grid_top_right_outside.png b/tests/baseline_images/test_strip_placement/facet_grid_top_right_outside.png index 65eeec1ea..fe873120f 100644 Binary files a/tests/baseline_images/test_strip_placement/facet_grid_top_right_outside.png and b/tests/baseline_images/test_strip_placement/facet_grid_top_right_outside.png differ diff --git a/tests/baseline_images/test_strip_placement/facet_wrap_top_outside.png b/tests/baseline_images/test_strip_placement/facet_wrap_top_outside.png index b0d35b60c..222b2fead 100644 Binary files a/tests/baseline_images/test_strip_placement/facet_wrap_top_outside.png and b/tests/baseline_images/test_strip_placement/facet_wrap_top_outside.png differ