v0.2.0 (2013年12月)#
这是从 0.1 版本以来的一个重大发布,包含了许多 API 变更、增强功能和错误修复。
亮点包括对时间序列绘图的全面改进,使其能够智能地处理数据框,新的 interactplot() 函数用于可视化连续交互,kdeplot() 中的双变量核密度估计,以及对调色板处理的显著改进。
版本 0.2 还引入了对 Python 3 的实验性支持。
除了库的增强功能外,文档也进行了大幅重写,以反映新功能并改进对包背后理念的呈现。
API 变更#
tsplot()函数被重写以接受长格式DataFrame的数据,并根据条件绘制不同的轨迹。这引入了一个相对较小但不可避免的 API 变化,即不再使用sns.tsplot(time, heights),而必须使用sns.tsplot(heights, time=time)``(``time参数现在是可选的,以便更快地指定简单图)。此外,tsplot()中的"obs_traces"和"obs_points"错误样式已分别重命名为"unit_traces"和"unit_points"。适合核密度估计的函数(
kdeplot()和violinplot())现在使用statsmodels而不是scipy,并且影响密度估计的参数也相应地发生了变化。这允许在指定带宽和核函数时具有更大的灵活性,并能更智能地选择支持范围的定义。默认选项应生成与旧默认值非常接近的图。kdeplot()函数现在接受第二个位置参数 data,用于绘制双变量密度。violin()函数已更改为violinplot(),以保持一致性。在 0.2 版本中,violin仍然可以使用,但会触发UserWarning。
新的绘图函数#
interactplot()函数绘制了一个交互式线性模型的等高线图(即,等高线显示了模型y ~ x1 * x2中的y-hat),并在两个预测变量之间的散点图上叠加。此图应有助于理解两个连续变量之间的交互作用。kdeplot()函数现在可以在提供二维输入数据时,绘制一个作为等高线图的双变量密度估计。palplot()函数提供了一个基于网格的颜色调色板可视化。
其他更改#
绘图函数#
corrplot()函数可以在没有相关系数注释的情况下绘制,并在图的侧面显示变量名称,以便处理大型数据集。此外,
corrplot()会根据指定测试的方向智能地设置颜色调色板。distplot()直方图在没有提供箱子大小的情况下,使用参考规则来选择箱子大小。在
lmplot()中添加了x_bins选项,用于对连续预测变量进行分箱,使得在数据点很多的情况下趋势更加清晰。增强了基于多个分布图函数和
tsplot()中的name属性对图元素和轴进行标记的支持,以实现更智能的 Pandas 集成。lmplot()中的散点是略微透明的,因此很容易看到观察值的重叠位置。在
boxplot()和violinplot()中添加了order参数,以在使用 Pandas 对象时控制箱的顺序。当绘图函数没有提供
ax参数时,它会抓取当前活动的轴,而不是绘制一个新的轴。
颜色调色板#
添加了
dark_palette()和blend_palette()用于即时创建混合颜色调色板。颜色调色板机制现在对定性的 ColorBrewer 调色板(如
Set1、Paired等)有了智能处理,这些调色板被正确地视为离散的。Seaborn 调色板(
deep、muted等)在基本色调序列方面已经标准化,所有调色板现在都有 6 种颜色。引入了
{mpl_palette}_d调色板,这些调色板使用源调色板的基本颜色方案,但使用从深色而不是浅色开始的顺序混合,用于线条/散点/等高线图。添加了
palette_context()函数,用于通过with语句控制的块级调色板。
绘图样式#
添加了
despine()函数,以便于轻松移除图表的脊柱。新增了一种绘图样式,
"ticks"。在所有样式中,刻度标签与轴的距离稍远一些,以避免在 (0, 0) 处发生碰撞。
通用包问题#
通过将单一的
plotobjs模块拆分为按组成图表的总体目标分组的小模块,重新组织了包。在
moss中移除了scikits-learn依赖。使用
pip安装应自动安装大多数缺失的依赖项。示例笔记本现在被用作自动化测试套件。
错误修复#
修复了一个错误,当使用 groupby 时,
boxplot()和violinplot()的标签与数据不匹配。修复了
desaturate()函数中的一个错误。修复了
coefplot()图形尺寸计算中的一个错误。修复了一个
regplot()在处理列表输入时崩溃的错误。修复了绘制水平箱线图时的错误行为。
现在可以为
distplot()直方图指定箱数。修复了一个错误,该错误导致
kdeplot()会重置轴高并截断现有数据。所有轴样式已从顶层
seaborn.set()函数中移出,因此可以干净地更改上下文或颜色调色板。