make sure x and y passed to plotting functions are valid
(
darray: DataArray | Dataset, xy: Hashable | None, name: str
)
| 433 | |
| 434 | # TODO: Can by used to more than x or y, rename? |
| 435 | def _assert_valid_xy( |
| 436 | darray: DataArray | Dataset, xy: Hashable | None, name: str |
| 437 | ) -> None: |
| 438 | """ |
| 439 | make sure x and y passed to plotting functions are valid |
| 440 | """ |
| 441 | |
| 442 | # MultiIndex cannot be plotted; no point in allowing them here |
| 443 | multiindex_dims = { |
| 444 | idx.dim |
| 445 | for idx in darray.xindexes.get_unique() |
| 446 | if isinstance(idx, PandasMultiIndex) |
| 447 | } |
| 448 | |
| 449 | valid_xy = (set(darray.dims) | set(darray.coords)) - multiindex_dims |
| 450 | |
| 451 | if (xy is not None) and (xy not in valid_xy): |
| 452 | valid_xy_str = "', '".join(sorted(str(v) for v in valid_xy)) |
| 453 | raise ValueError( |
| 454 | f"{name} must be one of None, '{valid_xy_str}'. Received '{xy}' instead." |
| 455 | ) |
| 456 | |
| 457 | |
| 458 | def get_axis( |
searching dependent graphs…