宣布发布Seborn 0.11

2020-09-09 09:09:48

今天发布了Seborn的0.11版本,这是一个用于数据可视化的Python库。这是一次重大更新,提供了许多激动人心的新功能、更新的API和更好的文档。本文重点介绍了一些值得注意的功能和更新;有关详细的发行说明,请参阅海运网站。

此版本的分发图已完全重写,更新了API,增强了现有功能,并添加了令人兴奋的新功能。通过这些更改,您只需一个声明性函数调用,就可以通过语义映射和分面来可视化条件分布:

这个主要的新功能Dislot为海运中的各种形式的分布图提供了一个图形级别的界面:直方图、核密度估计、经验分布和地毯图。这些选项中的大多数都支持单变量和双变量可视化:

经验分布(ECDF)图对于海运来说是全新的,它是一种便于在分布之间进行定量比较的统计技术:

新的分布图本质上支持分类和日期时间数据,它们透明地处理对数缩放的轴,并且有新的参数用于直观地控制直方图入库和密度平滑。可以对直方图计数进行归一化,以显示每个面元中观察的密度、概率或频率。可以分层、堆叠或躲避多个分布。加权估计在所有分布图中都是可能的。

现在轴级分布图支持语义映射,Seborn的复合绘图功能也支持语义映射。显示两个变量的联合分布和边缘分布,同时以第三个变量为条件,就像。

虽然分布图具有最令人兴奋的新功能,但整个库都进行了重要的增强。例如,现在在关系绘图函数(rellot、散点图和线条图)中语义映射数值变量时,您应该会看到更好的结果,并且已经创建了两个感知上一致的新颜色映射表(“flare”和“crest”),以便在这种绘图中使用。

接收数据的代码进行了重构,对宽格式和长格式数据的支持都得到了标准化和改进。虽然最常见的是对熊猫数据帧使用seborn,并使用命名变量指定数据映射,但是seborn在如何表示其输入数据方面相当灵活。用户指南的新一章演示了这种灵活性,并解释了Seborn如何查看数据集。虽然数据摄取在整个库中还不是完全一致的,但在下一个发布周期中会变得完全一致。

文件在许多其他方面进行了改进,包括增加了一个新的用户指南章节,解释海运功能是如何组织的,包括讨论和比较“轴级”和“图形级”功能之间的关键区别。调色板教程已经修改,为您选择不同的调色板提供了更多的颜色理论、背景和动机。重新编写的分发教程演示了新功能,同时提供了如何最好地使用每种情节的指导。

这些新功能带来了一些重要的API更改。值得注意的是,绘图函数(旧的和新的)现在几乎所有的参数都需要使用显式关键字传递。在v0.11中,使用位置参数只会触发警告,但在将来的版本中这将成为错误,因此您应该更新代码。

由于文档在几乎所有示例中都长期使用显式关键字,因此希望这不会造成太大的破坏。实施关键字参数将使向库中添加新功能变得更容易,同时保持函数签名的组织和函数调用的可解释性。一旦更改完全生效,签名将被重新组织,以便数据成为所有函数的第一个参数。这将使通过管道将熊猫数据帧导入海运功能变得更容易。而且,由于增强了对宽格式数据的支持,这意味着将任何绘图函数作为Plot(Data)调用都适用于非常广泛的数据格式。

新的分布图功能自然具有颠覆性。这里有一些建议可以帮助您调整代码。我们花了很多精力来平滑过渡,但明智的做法是在更新之前和之后仔细检查您的绘图。

作为这些更新的一部分,原始的Distlot函数已被弃用,并最终将被淘汰。如果对直方图使用dislot,则可以通过两种方式替换它:

Dislot,一个新的图形级函数,应该在大多数情况下使用,因为它支持分面,并将图例放在绘图之外。

直方图,这是一个新的轴级函数,应该在需要将直方图绘制到现有matplotlib图形上的情况下使用。

对于x是数据矢量的简单绘图,dislot(X)和histlot(X)是Distlot(X)的临时替代。这两个函数还允许您通过设置kde=True来添加KDE曲线。作为增强,新函数将在显示计数的直方图上绘制KDE,而不需要密度归一化。如果您使用dislot只显示一个KDE,那么可以使用dislot with Kind=";kde";或者使用轴级kdeplt。

很可能DISPLATE和DISPLATE在名称上的相似之处会在过渡过程中造成一些混淆,这是令人遗憾的。对于制作分布图的新图形级别函数来说,确实没有更好的名称了。如果有帮助的话,“分发”的词源是“disparate”tribure(分配),所以至少这个新术语把这个词拆分到了正确的位置。

与距离图不同的是,内核密度增强是通过调整现有的kdedet函数来实现的。旧代码应该可以继续工作,但在某些情况下,如果它使用已弃用或更新的API,则会触发FutureWarning或UserWarning。GitHub上的拉取请求对每个更改都有详细的解释。

简单的调用(如kdestart(X))的工作方式与以前相同。但是要使用新功能,您需要显式分配数据和变量。参数现在遵循在其他海运函数中看到的标准数据、x、y、hue API。

Kstastt中的几个可选参数也已修改。值得注意的是,BW_METHOD和BW_ADJUST替换了不明确的BW参数。在大多数情况下,您需要调整BW_ADJUST:这是一个缩放绘图中显示的所有分布的默认带宽的因子。

旧版本的kdedit既可以使用统计模型,也可以使用SCIPY来计算密度估计。这增加了复杂性,但没有明显的好处,因此在重写过程中删除了statsmodel后端。这意味着新版本只支持高斯内核。此外,两个后端解释各种参数的方式也有一些不同(BW和Clip是值得注意的例子)。默认行为应该是相同的,但是如果设置了其他值,您可能会在绘图中看到不同之处。

当您准备好升级时,这些功能和更多功能只需轻松安装即可实现:

如果您需要帮助,Matplotlib话语论坛上已经创建了一个新的海运频道。这是对用于目标问答的StackOverflow和用于报告错误的GitHub的补充。