Seaborn

Latest version: v0.13.2

Safety actively analyzes 630901 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 6

0.8.1

-----------------------

- Added a warning in `FacetGrid` when passing a categorical plot function without specifying `order` (or `hue_order` when `hue` is used), which is likely to produce a plot that is incorrect.

- Improved compatibility between `FacetGrid` or `PairGrid` and interactive matplotlib backends so that the legend no longer remains inside the figure when using `legend_out=True`.

- Changed categorical plot functions with small plot elements to use `dark_palette` instead of `light_palette` when generating a sequential palette from a specified color.

- Improved robustness of `kdeplot` and `distplot` to data with fewer than two observations.

- Fixed a bug in `clustermap` when using `yticklabels=False`.

- Fixed a bug in `pointplot` where colors were wrong if exactly three points were being drawn.

- Fixed a bug in`pointplot` where legend entries for missing data appeared with empty markers.

- Fixed a bug in `clustermap` where an error was raised when annotating the main heatmap and showing category colors.

- Fixed a bug in `clustermap` where row labels were not being properly rotated when they overlapped.

- Fixed a bug in `kdeplot` where the maximum limit on the density axes was not being updated when multiple densities were drawn.

- Improved compatibility with future versions of pandas.

0.8.0

- The default style is no longer applied when seaborn is imported. It is now necessary to explicitly call `set` or one or more of `set_style`, `set_context`, and `set_palette`. Correspondingly, the `seaborn.apionly` module has been deprecated.

- Changed the behavior of `heatmap` (and by extension `clustermap`) when plotting divergent dataesets (i.e. when the `center` parameter is used). Instead of extending the lower and upper limits of the colormap to be symettrical around the `center` value, the colormap is modified so that its middle color corresponds to `center`. This means that the full range of the colormap will not be used (unless the data or specified `vmin` and `vmax` are symettric), but the upper and lower limits of the colorbar will correspond to the range of the data. See the Github pull request [(\1184)](https://github.com/mwaskom/seaborn/pull/1184) for examples of the behavior.

- Removed automatic detection of diverging data in `heatmap` (and by extension `clustermap`). If you want the colormap to be treated as diverging (see above), it is now necessary to specify the `center` value. When no colormap is specified, specifying `center` will still change the default to be one that is more appropriate for displaying diverging data.

- Added four new colormaps, created using [viscm](https://github.com/matplotlib/viscm) for perceptual uniformity. The new colormaps include two sequential colormaps (`"rocket"` and `"mako"`) and two diverging colormaps (`"icefire"` and `"vlag"`). These colormaps are registered with matplotlib on seaborn input and the colormap objects can be accessed in the `seaborn.cm` namespace.

- Changed the default `heatmap` colormaps to be `"rocket"` (in the case of sequential data) or `"icefire"` (in the case of diverging data). Note that this change reverses the direction of the luminance ramp from the previous defaults. While potentially confusing and disruptive, this change better aligns the seaborn defaults with the new matplotlib default colormap (`"viridis"`) and arguably better aligns the semantics of a "heat" map with the appearance of the colormap.

- Added `"auto"` as a (default) option for tick labels in `heatmap` and `clustermap`. This will try to estimate how many ticks can be labeled without the text objects overlapping, which should improve performance for larger matrices.

- Added the `dodge` parameter to boxplot, violinplot, and barplot to allow use of `hue` without changing the position or width of the plot elements, as when the `hue` varible is not nested within the main categorical variable.

- Correspondingly, the `split` parameter for stripplot and swarmplot has been renamed to `dodge` for consistency with the other categorical functions (and for differentiation from the meaning of `split` in violinplot).

- Added the ability to draw a colorbar for a bivariate kdeplot with the `cbar` parameter (and related `cbar_ax` and `cbar_kws` parameters).

- Added the ability to use error bars to show standard deviations rather than bootstrap confidence intervals in most statistical functions by putting `ci="sd"`.

- Allow side-specific offsets in `despine`.

- Figure size is no longer part of the seaborn plotting context parameters.

- Put a cap on the number of bins used in `jointplot` for `type=="hex"` to avoid hanging when the reference rule prescribes too many.

- Turn off dendrogram axes in `clustermap` rather than setting the background color to white.

- New matplotlib qualitative palettes (e.g. `"tab10"`) are now handled correctly.

- Some modules and functions have been internally reorganized; there should be no effect on code that uses the `seaborn` namespace.

- Added a deprecation warning to `tsplot` function to indicate that it will be removed or replaced with a substantially altered version in a future release.

- The `interactplot` and `coefplot` functions are officially deprecated and will be removed in a future release.

0.7.1

- Added the ability to put "caps" on the error bars that are drawn by `barplot` or `pointplot` (and, by extension, `factorplot`). Additionally, the line width of the error bars can now be controlled. These changes involve the new parameters `capsize` and `errwidth`. See the [github pull request](https://github.com/mwaskom/seaborn/pull/898) for examples of usage.
- Improved the row and column colors display in `clustermap`. It
is now possible to pass Pandas objects for these elements and, when possible, the semantic information in the Pandas objects will be used to add labels to the plot. When Pandas objects are used, the color data is matched against the main heatmap based on the index, not on position. This is more accurate, but it may lead to different results if current code assumed positional matching.
- Improved the luminance calculation that determines the annotation color in `heatmap`.
- The `annot` parameter of `heatmap` now accepts a rectangular dataset in addition to a boolean value. If a dataset is passed, its values will be used for the annotations, while the main dataset will be used for the heatmap cell colors.
- Fixed a bug in `FacetGrid` that appeared when using `col_wrap` with missing `col` levels.
- Made it possible to pass a tick locator object to the `heatmap` colorbar.
- Made it possible to use different styles (e.g., step) for `PairGrid` histograms when there are multiple hue levels.
- Fixed a bug in scipy-based univariate kernel density bandwidth calculation.
- The `reset_orig` function (and, by extension, importing `seaborn.apionly`) resets matplotlib rcParams to their values at the time seaborn itself was imported, which should work better with rcParams changed by the jupyter notebook backend.
- Removed some objects from the top-level `seaborn` namespace.
- Improved unicode compatibility in `FacetGrid`.

0.7.0

This is a major release from 0.6. The main new feature is swarmplot which implements the beeswarm approach for drawing categorical scatterplots. There are also some performance improvements, bug fixes, and updates for compatibility with new versions of dependencies.
- Added the swarmplot function, which draws beeswarm plots. These are
categorical scatterplots, similar to those produced by stripplot,
but position of the points on the categorical axis is chosen to
avoid overlapping points. See the
categorical plot tutorial for more
information.
- Added an additional rule when determining category order in
categorical plots. Now, when numeric variables are used in a
categorical role, the default behavior is to sort the unique levels
of the variable (i.e they will be in proper numerical order). This
can still be overridden by the appropriate `{*_}order` parameter,
and variables with a `category` datatype will still follow the
category order even if the levels are strictly numerical.
- Changed some of the stripplot defaults to be closer to swarmplot.
Points are somewhat smaller, have no outlines, and are not split by
default when using `hue`.
- Changed how stripplot draws points when using `hue` nesting with
`split=False` so that the different `hue` levels are not drawn
strictly on top of each other.
- Improve performance for large dendrograms in clustermap.
- Added `font.size` to the plotting context definition so that the
default output from `plt.text` will be scaled appropriately.
- Fixed a bug in clustermap when `fastcluster` is not installed.
- Fixed a bug in the zscore calculation in clustermap.
- Fixed a bug in distplot where sometimes the default number of bins
would not be an integer.
- Fixed a bug in stripplot where a legend item would not appear for a
`hue` level if there were no observations in the first group of
points.
- Heatmap colorbars are now rasterized for better performance in
vector plots.
- Added workarounds for some matplotlib boxplot issues, such as
strange colors of outlier points.
- Added workarounds for an issue where violinplot edges would be
missing or have random colors.
- Added a workaround for an issue where only one heatmap cell would be
annotated on some matplotlib backends.
- Fixed a bug on newer versions of matplotlib where a colormap would
be erroneously applied to scatterplots with only three observations.
- Updated seaborn for compatibility with matplotlib 1.5.
- Added compatibility for various IPython (and Jupyter) versions in
functions that use widgets.

0.6.0

This is a major release from 0.5. The main objective of this release was to unify the API for categorical plots, which means that there are some relatively large API changes in some of the older functions. See below for details of those changes, which may break code written for older versions of seaborn. There are also some new functions (stripplot, and countplot), numerous enhancements to existing functions, and bug fixes.

Additionally, the documentation has been completely revamped and expanded for the 0.6 release. Now, the API docs page for each function has multiple examples with embedded plots showing how to use the various options. These pages should be considered the most comprehensive resource for examples, and the tutorial pages are now streamlined and oriented towards a higher-level overview of the various features.

Changes and updates to categorical plots

In version 0.6, the "categorical" plots have been unified with a common API. This new category of functions groups together plots that show the relationship between one numeric variable and one or two categorical variables. This includes plots that show distribution of the numeric variable in each bin (boxplot, violinplot, and stripplot) and plots that apply a statistical estimation within each bin (pointplot, barplot, and countplot). There is a new tutorial chapter <categorical_tutorial> that introduces these functions.

The categorical functions now each accept the same formats of input data and can be invoked in the same way. They can plot using long- or wide-form data, and can be drawn vertically or horizontally. When long-form data is used, the orientation of the plots is inferred from the types of the input data. Additionally, all functions natively take a `hue` variable to add a second layer of categorization.

With the (in some cases new) API, these functions can all be drawn correctly by FacetGrid. However, factorplot can also now create faceted verisons of any of these kinds of plots, so in most cases it will be unnecessary to use FacetGrid directly. By default, factorplot draws a point plot, but this is controlled by the `kind` parameter.

Here are details on what has changed in the process of unifying these APIs:
- Changes to boxplot and violinplot will probably be the most disruptive. Both functions maintain backwards-compatibility in terms of the kind of data they can accept, but the syntax has changed to be more similar to other seaborn functions. These functions are now invoked with `x` and/or `y` parameters that are either vectors of data or names of variables in a long-form DataFrame passed to the new `data` parameter. You can still pass wide-form DataFrames or arrays to `data`, but it is no longer the first positional argument. See the [github pull request](https://github.com/mwaskom/seaborn/pull/410) for more information on these changes and the logic behind them.
- As pointplot and barplot can now plot with the major categorical variable on the y axis, the `x_order` parameter has been renamed to `order`.
- Added a `hue` argument to boxplot and violinplot, which allows for nested grouping the plot elements by a third categorical variable. For violinplot, this nesting can also be accomplished by splitting the violins when there are two levels of the `hue` variable (using `split=True`). To make this functionality feasible, the ability to specify where the plots will be draw in data coordinates has been removed. These plots now are drawn at set positions, like (and identical to) barplot and pointplot.
- Added a `palette` parameter to boxplot/violinplot. The `color` parameter still exists, but no longer does double-duty in accepting the name of a seaborn palette. `palette` supersedes `color` so that it can be used with a FacetGrid.

Along with these API changes, the following changes/enhancements were made to the plotting functions:
- The default rules for ordering the categories has changed. Instead of automatically sorting the category levels, the plots now show the levels in the order they appear in the input data (i.e., the order given by `Series.unique()`). Order can be specified when plotting with the `order` and `hue_order` parameters. Additionally, when variables are pandas objects with a "categorical" dtype, the category order is inferred from the data object. This change also affects FacetGrid and PairGrid.
- Added the `scale` and `scale_hue` parameters to violinplot. These control how the width of the violins are scaled. The default is `area`, which is different from how the violins used to be drawn. Use `scale='width'` to get the old behavior.
- Used a different style for the `box` kind of interior plot in violinplot, which shows the whisker range in addition to the quartiles. Use `inner='quartile'` to get the old style.

New plotting functions
- Added the stripplot function, which draws a scatterplot where one of the variables is categorical. This plot has the same API as boxplot and violinplot. It is useful both on its own and when composed with one of these other plot kinds to show both the observations and underlying distribution.
- Added the countplot function, which uses a bar plot representation to show counts of variables in one or more categorical bins. This replaces the old approach of calling barplot without a numeric variable.

Other additions and changes
- The corrplot and underlying symmatplot functions have been deprecated in favor of heatmap, which is much more flexible and robust. These two functions are still available in version 0.6, but they will be removed in a future version.
- Added the set_color_codes function and the `color_codes` argument to set and set_palette. This changes the interpretation of shorthand color codes (i.e. "b", "g", k", etc.) within matplotlib to use the values from one of the named seaborn palettes (i.e. "deep", "muted", etc.). That makes it easier to have a more uniform look when using matplotlib functions directly with seaborn imported. This could be disruptive to existing plots, so it does not happen by default. It is possible this could change in the future.
- The color_palette function no longer trims palettes that are longer than 6 colors when passed into it.
- Added the `as_hex` method to color palette objects, to return a list of hex codes rather than rgb tuples.
- jointplot now passes additional keyword arguments to the function used to draw the plot on the joint axes.
- Changed the default `linewidths` in heatmap and clustermap to 0 so that larger matrices plot correctly. This parameter still exists and can be used to get the old effect of lines demarcating each cell in the heatmap (the old default `linewidths` was 0.5).
- heatmap and clustermap now automatically use a mask for missing values, which previously were shown with the "under" value of the colormap per default plt.pcolormesh behavior.
- Added the `seaborn.crayons` dictionary and the crayon_palette function to define colors from the 120 box (!) of [Crayola crayons](http://en.wikipedia.org/wiki/List_of_Crayola_crayon_colors).
- Added the `line_kws` parameter to residplot to change the style of the lowess line, when used.
- Added open-ended `**kwargs` to the `add_legend` method on FacetGrid and PairGrid, which will pass additional keyword arguments through when calling the legend function on the `Figure` or `Axes`.
- Added the `gridspec_kws` parameter to FacetGrid, which allows for control over the size of individual facets in the grid to emphasize certain plots or account for differences in variable ranges.
- The interactive palette widgets now show a continuous colorbar, rather than a discrete palette, when as_cmap is True.
- The default Axes size for pairplot and PairGrid is now slightly smaller.
- Added the `shade_lowest` parameter to kdeplot which will set the alpha for the lowest contour level to 0, making it easier to plot multiple bivariate distributions on the same axes.
- The `height` parameter of rugplot is now interpreted as a function of the axis size and is invariant to changes in the data scale on that axis. The rug lines are also slightly narrower by default.
- Added a catch in distplot when calculating a default number of bins. For highly skewed data it will now use sqrt(n) bins, where previously the reference rule would return "infinite" bins and cause an exception in matplotlib.
- Added a ceiling (50) to the default number of bins used for distplot histograms. This will help avoid confusing errors with certain kinds of datasets that heavily violate the assumptions of the reference rule used to get a default number of bins. The ceiling is not applied when passing a specific number of bins.
- The various property dictionaries that can be passed to `plt.boxplot` are now applied after the seaborn restyling to allow for full customizability.
- Added a `savefig` method to JointGrid that defaults to a tight bounding box to make it easier to save figures using this class, and set a tight bbox as the default for the `savefig` method on other Grid objects.
- You can now pass an integer to the `xticklabels` and `yticklabels` parameter of heatmap (and, by extension, clustermap). This will make the plot use the ticklabels inferred from the data, but only plot every `n` label, where `n` is the number you pass. This can help when visualizing larger matrices with some sensible ordering to the rows or columns of the dataframe.
- Added "figure.facecolor" to the style parameters and set the default to white.
- The load_dataset function now caches datasets locally after downloading them, and uses the local copy on subsequent calls.

Bug fixes
- Fixed bugs in clustermap where the mask and specified ticklabels were not being reorganized using the dendrograms.
- Fixed a bug in FacetGrid and PairGrid that lead to incorrect legend labels when levels of the `hue` variable appeared in `hue_order` but not in the data.
- Fixed a bug in FacetGrid.set_xticklabels or FacetGrid.set_yticklabels when `col_wrap` is being used.
- Fixed a bug in PairGrid where the `hue_order` parameter was ignored.
- Fixed two bugs in despine that caused errors when trying to trim the spines on plots that had inverted axes or no ticks.
- Improved support for the `margin_titles` option in FacetGrid, which can now be used with a legend.

0.5.1

This is a bugfix release that includes a workaround for an issue in
matplotlib 1.4.2 and fixes for two bugs in functions that were new in
0.5.0.
- Implemented a workaround for a bug in matplotlib 1.4.2 that
prevented point markers from being drawn when the seaborn styles had
been set. See this [github
issue](https://github.com/mwaskom/seaborn/issues/344) for more
information.
- Fixed a bug in heatmap where the mask was vertically reversed
relative to the data.
- Fixed a bug in clustermap when using nested lists of side colors.

Page 5 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.