Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Clean up title typing
  • Loading branch information
mwaskom committed Aug 4, 2022
commit 4acc64674d1a59a1d43eb96afb0da4d325349dcf
15 changes: 8 additions & 7 deletions seaborn/_core/plot.py
Original file line number Diff line number Diff line change
Expand Up @@ -858,15 +858,17 @@ def _extract_data(self, p: Plot) -> tuple[PlotData, list[Layer]]:

return common_data, layers

def _resolve_label(self, p: Plot, var: str, auto_label: str | None) -> str | None:
def _resolve_label(self, p: Plot, var: str, auto_label: str | None) -> str:

label: str | None
label: str
if var in p._labels:
manual_label = p._labels[var]
if callable(manual_label) and auto_label is not None:
label = manual_label(auto_label)
else:
label = cast(str, manual_label)
elif auto_label is None:
label = ""
else:
label = auto_label
return label
Expand Down Expand Up @@ -1456,7 +1458,7 @@ def _update_legend_contents(

# First pass: Identify the values that will be shown for each variable
schema: list[tuple[
tuple[str | None, str | int], list[str], tuple[list, list[str]]
tuple[str, str | int], list[str], tuple[list, list[str]]
]] = []
schema = []
for var in legend_vars:
Expand All @@ -1469,8 +1471,7 @@ def _update_legend_contents(
part_vars.append(var)
break
else:
auto_title = data.names[var]
title = self._resolve_label(p, var, auto_title)
title = self._resolve_label(p, var, data.names[var])
entry = (title, data.ids[var]), [var], (values, labels)
schema.append(entry)

Expand All @@ -1490,7 +1491,7 @@ def _make_legend(self, p: Plot) -> None:
# Input list has an entry for each distinct variable in each layer
# Output dict has an entry for each distinct variable
merged_contents: dict[
tuple[str | None, str | int], tuple[list[Artist], list[str]],
tuple[str, str | int], tuple[list[Artist], list[str]],
] = {}
for key, artists, labels in self._legend_contents:
# Key is (name, id); we need the id to resolve variable uniqueness,
Expand All @@ -1514,7 +1515,7 @@ def _make_legend(self, p: Plot) -> None:
self._figure,
handles,
labels,
title="" if name is None else name,
title=name,
loc="center left",
bbox_to_anchor=(.98, .55),
)
Expand Down