This is a minor release with some bug fixes and a couple new features. All users are encouraged to update.
|Feature| Added support for weighted mean estimation (with boostrap CIs) in lineplot, barplot, pointplot, and objects.Est (#3580, #3586).
|Feature| Added the extent option in objects.Plot.layout (#3552).
|Fix| Fixed a regression in v0.13.0 that triggered an exception when working with non-numpy data types (#3516).
|Fix| Fixed a bug in objects.Plot so that tick labels are shown for wrapped axes that aren't in the bottom-most row (#3600).
|Fix| Fixed a bug in catplot where a blank legend would be added when hue was redundantly assigned (#3540).
|Fix| Fixed a bug in catplot where the edgecolor parameter was ignored with kind="bar" (#3547).
|Fix| Fixed a bug in boxplot where an exception was raised when using the matplotlib bootstrap option (#3562).
|Fix| Fixed a bug in lineplot where an exception was raised when hue was assigned with an empty dataframe (#3569).
|Fix| Fixed a bug in multiple categorical plots that raised with hue=None and dodge=True; this is now has no effect (#3605).
v0.13.0 (September 2023)
See the online docs for an annotated version of these notes with working links.
This is a major release with a number of important new features and changes. The highlight is a major overhaul to seaborn's categorical plotting functions, providing them with many new capabilities and better aligning their API with the rest of the library. There is also provisional support for alternate dataframe libraries like polars, a new theme and display configuration system for objects.Plot, and many smaller bugfixes and enhancements.
Updating is recommended, but users are encouraged to carefully check the outputs of existing code that uses the categorical functions, and they should be aware of some deprecations and intentional changes to the default appearance of the resulting plots (see notes below with and tags).
Major enhancements to categorical plots
Seaborn's categorical functions <categorical_api> have been completely rewritten for this release. This provided the opportunity to address some longstanding quirks as well as to add a number of smaller but much-desired features and enhancements.
Support for numeric and datetime data
The categorical functions have historically treated all data as categorical, even when it has a numeric or datetime type. This can now be controlled with the new native_scale parameter. The default remains False to preserve existing behavior. But with native_scale=True, values will be treated as they would by other seaborn or matplotlib functions. Element widths will be derived from the minimum distance between two unique values on the categorical axis.
Additionally, while seaborn previously determined the mapping from categorical values to ordinal positions internally, this is now delegated to matplotlib. The change should mostly be transparent to the user, but categorical plots (even with native_scale=False) will better align with artists added by other seaborn or matplotlib functions in most cases, and matplotlib's interactive machinery will work better.
Changes to color defaults and specification
The categorical functions now act more like the rest of seaborn in that they will produce a plot with a single main color unless the hue variable is assigned. Previously, there would be an implicit redundant color mapping (e.g., each box in a boxplot would get a separate color from the default palette). To retain the previous behavior, explicitly assign a redundant hue variable (e.g., boxplot(data, x="x", y="y", hue="x")).
Two related idiosyncratic color specifications are deprecated, but they will continue to work (with a warning) for one release cycle:
Passing a palette without explicitly assigning hue is no longer supported (add an explicitly redundant hue assignment instead).
Passing a color while assigning hue to produce a gradient is no longer supported (use palette="dark:{color}" or palette="light:{color}" instead).
Finally, like other seaborn functions, the default palette now depends on the variable type, and a sequential palette will be used with numeric data. To retain the previous behavior, pass the name of a qualitative palette (e.g., palette="deep" for seaborn's default). Accordingly, the functions have gained a parameter to control numeric color mappings (hue_norm).
Other features, enhancements, and changes
... (truncated)
Commits
d00a27d Merge master and update version for release
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps seaborn from 0.12.2 to 0.13.1.
Release notes
Sourced from seaborn's releases.
... (truncated)
Commits
d00a27d
Merge master and update version for release6890b31
Finalize v0.13.1 release notes1771d8e
Update release notes785708f
Cleanup compat code for obsolete versions of dependencies (#3607)45a098f
FIX: Enable xticklabels for all bottom axes (#3600)2c115ed
Avoid error when dodge=True, hue=None (#3605)1617be0
Add v0.13.1 release notes9a0842d
Change how pandoc gets installed in CI (#3604)cfa74b4
Add a missing raise in kdeplot and slightly improve lmplot signature (#3602)5051ede
Crosslink to aesthetics tutorial from set_context/plotting_context (#3599)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show