When a spanning y-axis label is used together with categorical row labels, UltraPlot places the shared y-axis label between the row labels and the subplot grid. This pushes labels such as “Cropland,” “Forest,” “Grassland,” and “Savanna” farther away from their corresponding rows, creating an unclear visual hierarchy. The shared y-axis label should preferably be outermost, while the categorical row labels should remain closer to their panels. This behavior is reproducible in plain UltraPlot and is unaffected by the order of the formatting calls.
Minimal Reproducible Example
import matplotlib.pyplot as plt
import ultraplot as uplt
fig, axs = uplt.subplots(
nrows=4,
ncols=4,
sharex=True,
sharey=True,
)
axs.format(
xlabel="Observed value",
ylabel="Predicted value",
)
fig.format(
rowlabels=[
"Cropland",
"Forest",
"Grassland",
"Savanna",
],
)
plt.show()
Originally posted by @lwq-star in #747 (comment)
When a spanning y-axis label is used together with categorical row labels, UltraPlot places the shared y-axis label between the row labels and the subplot grid. This pushes labels such as “Cropland,” “Forest,” “Grassland,” and “Savanna” farther away from their corresponding rows, creating an unclear visual hierarchy. The shared y-axis label should preferably be outermost, while the categorical row labels should remain closer to their panels. This behavior is reproducible in plain UltraPlot and is unaffected by the order of the formatting calls.
Minimal Reproducible Example
Originally posted by @lwq-star in #747 (comment)