v0.2.0 (December 2013)#
This is a major release from 0.1 with a number of API changes, enhancements, and bug fixes.
Highlights include an overhaul of timeseries plotting to work intelligently
with dataframes, the new function interactplot()
for visualizing continuous
interactions, bivariate kernel density estimates in kdeplot()
, and
significant improvements to color palette handling.
Version 0.2 also introduces experimental support for Python 3.
In addition to the library enhancements, the documentation has been substantially rewritten to reflect the new features and improve the presentation of the ideas behind the package.
API changes#
The
tsplot()
function was rewritten to accept data in a long-formDataFrame
and to plot different traces by condition. This introduced a relatively minor but unavoidable API change, where instead of doingsns.tsplot(time, heights)
, you now must dosns.tsplot(heights, time=time)
(thetime
parameter is now optional, for quicker specification of simple plots). Additionally, the"obs_traces"
and"obs_points"
error styles intsplot()
have been renamed to"unit_traces"
and"unit_points"
, respectively.Functions that fit kernel density estimates (
kdeplot()
andviolinplot()
) now usestatsmodels
instead ofscipy
, and the parameters that influence the density estimate have changed accordingly. This allows for increased flexibility in specifying the bandwidth and kernel, and smarter choices for defining the range of the support. Default options should produce plots that are very close to the old defaults.The
kdeplot()
function now takes a second positional argument of data for drawing bivariate densities.The
violin()
function has been changed toviolinplot()
, for consistency. In 0.2,violin
will still work, but it will fire aUserWarning
.
New plotting functions#
The
interactplot()
function draws a contour plot for an interactive linear model (i.e., the contour showsy-hat
from the modely ~ x1 * x2
) over a scatterplot between the two predictor variables. This plot should aid the understanding of an interaction between two continuous variables.The
kdeplot()
function can now draw a bivariate density estimate as a contour plot if provided with two-dimensional input data.The
palplot()
function provides a simple grid-based visualization of a color palette.
Other changes#
Plotting functions#
The
corrplot()
function can be drawn without the correlation coefficient annotation and with variable names on the side of the plot to work with large datasets.Additionally,
corrplot()
sets the color palette intelligently based on the direction of the specified test.The
distplot()
histogram uses a reference rule to choose the bin size if it is not provided.Added the
x_bins
option inlmplot()
for binning a continuous predictor variable, allowing for clearer trends with many datapoints.Enhanced support for labeling plot elements and axes based on
name
attributes in several distribution plot functions andtsplot()
for smarter Pandas integration.Scatter points in
lmplot()
are slightly transparent so it is easy to see where observations overlap.Added the
order
parameter toboxplot()
andviolinplot()
to control the order of the bins when using a Pandas object.When an
ax
argument is not provided to a plotting function, it grabs the currently active axis instead of drawing a new one.
Color palettes#
Added the
dark_palette()
andblend_palette()
for on-the-fly creation of blended color palettes.The color palette machinery is now intelligent about qualitative ColorBrewer palettes (
Set1
,Paired
, etc.), which are properly treated as discrete.Seaborn color palettes (
deep
,muted
, etc.) have been standardized in terms of basic hue sequence, and all palettes now have 6 colors.Introduced
{mpl_palette}_d
palettes, which make a palette with the basic color scheme of the source palette, but with a sequential blend from dark instead of light colors for use with line/scatter/contour plots.Added the
palette_context()
function for blockwise color palettes controlled by awith
statement.
Plot styling#
Added the
despine()
function for easily removing plot spines.A new plot style,
"ticks"
has been added.Tick labels are padded a bit farther from the axis in all styles, avoiding collisions at (0, 0).
General package issues#
Reorganized the package by breaking up the monolithic
plotobjs
module into smaller modules grouped by general objective of the constituent plots.Removed the
scikits-learn
dependency inmoss
.Installing with
pip
should automatically install most missing dependencies.The example notebooks are now used as an automated test suite.
Bug fixes#
Fixed a bug where labels did not match data for
boxplot()
andviolinplot()
when using a groupby.Fixed a bug in the
desaturate()
function.Fixed a bug in the
coefplot()
figure size calculation.Fixed a bug where
regplot()
choked on list input.Fixed buggy behavior when drawing horizontal boxplots.
Specifying bins for the
distplot()
histogram now works.Fixed a bug where
kdeplot()
would reset the axis height and cut off existing data.All axis styling has been moved out of the top-level
seaborn.set()
function, so context or color palette can be cleanly changed.