Skip to content

axs.format() resets per-axis axesedgecolor set via ax.format() #739

Description

@munechika-koyo

Summary

When setting axesedgecolor per-axis with ax.format(...), calling axs.format(...) afterward (even only for title) appears to reset the edge colors.

Minimal Reproducible Example

importultraplotasupltfig, axs=uplt.subplots(ncols=2)
fori, axinenumerate(axs):
ax.format(
axesedgecolor=f"C{i}",
title="Axes edge color",
)

This applies different edge colors to each axes as expected.

importultraplotasupltfig, axs=uplt.subplots(ncols=2)
fori, axinenumerate(axs):
ax.format(
axesedgecolor=f"C{i}",
)
axs.format(
title="Axes edge color",
)

In this case, after axs.format(...), the per-axis edge colors are reset.

Expected behavior

Calling axs.format(...) for unrelated properties (e.g., title) should not overwrite/reset per-axis axesedgecolor values already set with ax.format(...).

Actual behavior

Per-axis axesedgecolor appears to be reset after axs.format(...).

Additional context

If this is intended behavior, it would be helpful to document it clearly. Otherwise, this may be a bug/regression in property merging/precedence between Axes.format and AxesGroup.format.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions