每个版本的新增功能¶
此页面包含有关每个新版本中所做更改的信息 seaborn
. 每个版本还标记有来自的DOI Zenodo ,可用于引用库。
v0.12.0(未发布)¶
v0.11.1(2020年12月)¶
这是一个bug修复版本,建议v0.11.0上的所有用户升级。
Enhancement Reduced the use of matplotlib global state in the multi-grid classes (#2388).
Fix 恢复了对使用元组或数字键引用长格式字段的支持
data
对象 (#2386 )Fix 修正了一个错误
lineplot()
NAs传播到置信区间,有时从绘图中删除它 (#2273 )Fix 修正了一个错误
PairGrid
/pairplot()
当网格不是正方形且对角线不包含边缘图时,对角线轴为空 (#2270 )Fix 修正了一个错误
PairGrid
/pairplot()
当列名在data
具有非字符串类型 (#2368 )Fix 修复了当数据由布尔值或类似布尔值组成时忽略分类数据类型信息的错误 (#2379 )
Fix 修正了一个错误
kdeplot()
在哪里?common_norm=True
被忽略,如果hue
未分配 (#2378 )Fix 修正了一个错误
displot()
何处row_order
和col_order
未使用参数 (#2262 )Fix Fixed a bug in
PairGrid
/pairplot()
that caused an exception when usingcorner=True
anddiag_kind=None
(#2382).Fix 修正了一个错误
clustermap()
在哪里?annot=False
被忽略 (#2323 )Fix 修正了一个错误
clustermap()
其中行/列颜色批注不能具有分类数据类型 (#2389 )Fix 修正了一个错误
boxenplot()
何处linewidth
参数被忽略 (#2287 )Fix 提出一个信息更丰富的错误
PairGrid
/pairplot()
当找不到变量来定义网格的行/列时 (#2382 )Fix 提出一个信息更丰富的错误
clustermap()
如果行/列颜色对象有语义索引,但数据对象没有 (#2313 )
v0.11.0(2020年9月)¶
这是一个主要的版本,有几个重要的新特性、对现有函数的增强以及对库的更改。新的绘图功能和更灵活的文档,更详细的描述和更新。
有关新功能的概述和更新指南,请参阅 this Medium post .
必需的关键字参数¶
API
大多数绘图函数现在要求使用关键字参数指定其所有参数。为了简化自适应,没有关键字参数的代码将触发 FutureWarning
在v0.11中。在将来的版本中(v0.12或v0.13,取决于发行节奏),这将成为一个错误。一旦关键字参数被完全执行,绘图函数的签名将被重新组织为接受 data
作为第一个也是唯一的位置参数 (#2052, #2081 )
配电功能现代化¶
分发模块已经彻底检修,使API现代化,并在现有函数中引入了几个新的函数和特性。这里介绍了一些新的特性 tutorial documentation 也被重写,作为一个很好的介绍功能。
新的绘图功能¶
Feature Enhancement
第一,三个新功能, displot()
, histplot()
和 ecdfplot()
已添加 (#2157 , #2125 , #2141 )
图形级别 displot()
函数是各种分布图的接口(类似于 relplot()
或 catplot()
). 它可以绘制单变量或双变量直方图、密度曲线、ECDF和地毯图 FacetGrid
.
轴水平 histplot()
函数绘制具有许多特征的单变量或双变量直方图,包括:
用一个
hue
语义的显示密度、概率或频率统计的标准化
灵活的箱子尺寸参数化,包括离散变量的适当箱子
添加KDE fit以显示所有bin统计的平滑分布
对分类和日期时间变量直方图的实验支持。
轴水平 ecdfplot()
函数使用类似的接口绘制单变量经验累积分布函数。
对现有功能的更改¶
API Feature Enhancement Defaults
二是现有功能 kdeplot()
和 rugplot()
已经彻底检修过了 (#2060, #2104 )
经过大修的函数现在与seaborn的其他函数共享一个公共API,它们可以通过将第三个变量映射为 hue
它们在许多其他方面得到了改进。github请求 (#2104 )对这些变化及其背后的动机有更详细的解释。
这必然是一个突破API的变化。位置变量的参数名现在是 x
和 y
,旧名称已被弃用。在使用不推荐使用的API时,我们努力处理并发出警告,但强烈建议您仔细检查绘图。
此外,基于statsmodels的KDE计算也被删除。因为不同的参数之间有一些不一致(特别是, bw
, clip
和 cut
)默认情况下,每个非后端执行的绘图可能会导致不同的参数。只在statsmodels后端提供的对使用非高斯核的支持已经被删除。
其他新功能包括:
表示多个密度的多个选项(使用
multiple
和common_norm
(参数)加权密度估计(使用新的
weights
参数)更好地控制平滑带宽(使用新的
bw_adjust
参数)表示双变量密度的等高线的更有意义的参数化(使用
thresh
和levels
(参数)对数空间密度估计(使用新的
log_scale
参数,或在打印前缩放数据轴)具有单个函数调用的“双变量”地毯图(通过分配两者
x
和y
)
贬抑¶
API
最后, distplot()
函数现在已正式弃用。它的特点已经包含在 displot()
和 histplot()
. 为逐步过渡作出了一些努力 distplot()
通过在中添加功能 displot()
和处理向后兼容性,但这被证明是太困难了。名称的相似性可能会在过渡期间造成一些混乱,这是令人遗憾的。
数据摄取的标准化和增强¶
Feature Enhancement Docs
处理输入数据的代码已经过重构和增强。在v0.11中,这段新代码对关系模块和分发模块生效;其他模块将被重构以在将来的版本中使用它 (#2071 )
这些更改对于大多数用例应该是透明的,尽管它们允许一些新特性:
长格式数据的命名变量可以引用
pandas.DataFrame
或在多索引的情况下达到水平。以前,有必要打电话pandas.DataFrame.reset_index()
在使用索引变量之前(例如,在groupby操作之后)。relplot()
现在具有与axes级别函数相同的灵活性,可以接受长格式或宽格式的数据,也可以接受长格式模式的数据向量(而不是命名变量)。数据参数现在可以是Python
dict
或者实现该接口的对象。这是宽格式数据的一个新特性。对于长格式数据,以前支持但没有文档记录。宽格式数据对象可以混合使用多种类型;非数字类型将在打印前删除。以前,这导致了一个错误。
对于数据错误规范的其他实例,有更好的错误消息。
请参见《用户手册》的新章节 data formats 有关支持的内容的详细信息。
其他变化¶
文档改进¶
Docs 在用户指南中添加了两个新章节,其中一个章节概述了 types of functions in seaborn ,一个在讨论不同的 data formats seaborn明白。
Docs 扩大了 color palette tutorial 提供更多的色彩理论背景,更好地激发色彩在统计图形中的应用。
Docs 添加了更多信息到 installation guidelines 并简化了 introduction 页。
Docs 改进了seaborn文档内部以及seaborn和matplotlib文档之间的交叉链接。
支持主题¶
API 这个
set()
函数已重命名为set_theme()
为了更清楚地了解它的作用。在可预见的未来,set()
将保留为别名,但建议更新代码。
关系图¶
Enhancement Defaults Reduced some of the surprising behavior of relational plot legends when using a numeric hue or size mapping (#2229):
添加了一个“自动”模式(新的默认值),根据每个变量的唯一级别数在“简短”和“完整”图例之间进行选择。
修改了“简短”图例的勾选算法,以显示最多6个值,而不显示超出数据限制的值。
更改了图例标题的方法:当仅为一个变量分配了语义映射时,使用普通的matplotlib图例标题,而只有在定义了多个语义变量时,才使用添加带有字幕标签的不可见图例艺术家的旧方法。
修改后的图例副标题将左对齐,并以默认图例标题字体大小绘制。
Enhancement Defaults Changed how functions that use different representations for numeric and categorical data handle vectors with an
object
data type. Previously, data was considered numeric if it could be coerced to a float representation without error. Now, object-typed vectors are considered numeric only when their contents are themselves numeric. As a consequence, numbers that are encoded as strings will now be treated as categorical data (#2084).Enhancement Defaults Plots with a
style
semantic can now generate an infinite number of unique dashes and/or markers by default. Previously, an error would be raised if thestyle
variable had more levels than could be mapped using the default lists. The existing defaults were slightly modified as part of this change; if you need to exactly reproduce plots from earlier versions, refer to the old defaults (#2075).Defaults 怎么变的
scatterplot()
设置散点边缘的默认线宽。新的行为是根据点大小本身进行缩放(按绘图方式,而不是按点方式)。当点大小不变时,此更改还会略微减小默认宽度。套linewidth=0.75
重现先前的行为。 (#2708 )Enhancement Improved support for datetime variables in
scatterplot()
andlineplot()
(#2138).Fix 修正了一个错误
lineplot()
没有通过linestyle
参数向下到matplotlib (#2095 )Fix Adapted to a change in matplotlib that prevented passing vectors of literal values to
c
ands
inscatterplot()
(#2079).
分类图¶
Enhancement Defaults Fix Fixed a few computational issues in
boxenplot()
and improved its visual appearance (#2086):将计算框数的默认方法更改为``ku depth=“tukey”
,作为以前的默认方法 (``k_depth="proportion"
)基于一种启发式方法,该方法为小数据集生成过多的框。添加了指定特定框数的选项(例如。
k_depth=6
)或者绘制覆盖大部分数据点的方框 (k_depth="full"
)添加了一个新参数,
trust_alpha
,以控制k_depth="trustworthy"
.改变了
boxenplot()
更接近boxplot()
. 值得注意的是,当边缘为白色时,薄框将保持可见。
Enhancement 允许
catplot()
在关闭轴共享时,在每个面的分类轴上使用不同的值(例如,通过指定sharex=False
) (#2196 )Enhancement 改进了分类图处理方向参数时产生的错误消息。
Enhancement 在中添加了明确的警告
swarmplot()
当超过5%的点在蜂群的“水槽”中重叠时 (#2045 )
多重绘图网格¶
Feature Enhancement Defaults A few small changes to make life easier when using
PairGrid
(#2234):添加了通过
legend
属性(也影响FacetGrid
)这个
color
和label
当hue
未使用。在边缘轴上打印之前,数据不再转换为numpy对象。
只能指定其中一个
x_vars
或y_vars
,将所有变量用于未指定的维度。这个
layout_pad
每次调用PairGrid.tight_layout()
方法。
Feature 增加了一个
tight_layout
方法到FacetGrid
和PairGrid
,运行matplotlib.pyplot.tight_layout()
不受外部图例干扰的算法 (#2073 )Enhancement 制造
FacetGrid.set_axis_labels()
清除“内部”轴上的标签 (#2046 )Feature 增加了
marginal_ticks
参数到JointGrid
如果设置为True
,将在边缘图的计数/密度轴上显示刻度 (#2210 )Enhancement 改进
FacetGrid.set_titles()
具有margin_titles=True
,以便在添加新标题之前删除代表原始行标题的文本 (#2083 )Defaults 更改了的默认值
dropna
到False
在里面FacetGrid
,PairGrid
,JointGrid
,以及相应的函数。由于所有或几乎所有seaborn和matplotlib绘图函数都能很好地处理丢失的数据,因此此选项不再有用,但在某些边缘情况下会导致问题。将来可能会被否决。 (#2204 )Fix Fixed a bug in
PairGrid
that appeared when settingcorner=True
anddespine=False
(#2203).
调色板¶
Docs 改善和现代化 color palettes chapter 海伯恩教程。
Feature 添加了两个新的感知一致的颜色贴图:“光斑”和“纹章”。新的彩色地图类似于“火箭”和“mako”,但它们的亮度范围缩小了。这使得它们非常适合于线或散点图的数值映射,这需要与极端的轴背景进行对比 (#2237 )
Enhancement Defaults Enhanced numeric colormap functionality in several ways (#2237):
在中添加了基于字符串的访问
color_palette()
接口到dark_palette()
,light_palette()
和blend_palette()
. 这意味着在seaborn中指定调色板的任何地方"dark:blue"
将使用dark_palette()
与输入"blue"
.增加了
as_cmap
参数到color_palette()
并更改了内部代码,该代码使用连续的颜色映射来执行此路线。调整了
light_palette()
和dark_palette()
函数使用的端点是非常不饱和的输入颜色版本,而不是纯灰色。这会产生更平滑的斜坡。要精确复制以前的绘图,请使用blend_palette()
具有".13"
对于黑暗或".95"
为了光。改变
diverging_palette()
默认值为sep=1
,从而得到更好的结果。
Enhancement Added a rich HTML representation to the object returned by
color_palette()
(#2225).Fix 修正了
"{{palette}}_d"
在这两种情况下修改反转颜色贴图和使用亮度渐变的正确方向的逻辑。
折旧和清除¶
Enhancement 删除了对BeautifulSoup的可选(且未记录)依赖项 (#2190 在
get_dataset_names()
.API 贬低
axlabel
功能;用途ax.set(xlabel=, ylabel=)
相反。API 贬低
iqr
功能;用途scipy.stats.iqr()
相反。API 最终删除以前不推荐使用的
annotate
方法对JointGrid
,以及相关参数。API 最终拆除
lvplot
函数(以前不推荐使用的boxenplot()
)
v0.10.1(2020年4月)¶
这是一个小版本,它修复了自0.10.0以来发现的问题。
修复了32位系统上的引导算法中出现的错误。
修正了一个错误
regplot()
会在单例输入上崩溃。现在避免了崩溃,并且跳过了回归估计/绘图。修正了一个错误
heatmap()
在重新居中颜色映射时将忽略用户指定的under/over/bad值。修正了一个错误
heatmap()
在计算默认颜色映射限制时,将使用遮罩单元格中的值。修正了一个错误
despine()
尝试修剪matplotlib分类轴上的脊椎时会导致错误。适应matplotlib中的变化,该变化导致单群图出现问题。
增加了
showfliers
参数到boxenplot()
为了抑制异常数据点的绘制,匹配boxplot()
.避免了在将IQR为0的数据传递给
kdeplot()
.增加了
legend.title_fontsize
到plotting_context()
定义。弃用了几个不再在内部使用的实用程序函数 (
percentiles
,sig_stars
,pmf_hist
和sort_df
)
v0.10.0(2020年1月)¶
这是与版本0.9.1同时发布的主要更新。它有所有相同的特性(和bug!)与0.9.1一样,但是依赖项有重要的更改。
最值得注意的是,对python2的所有支持现在都被取消了。对python3.5的支持也被取消了。Seaborn现在与Python3.6+严格兼容。
依赖PyData库的最低支持版本也有所增加,在某些情况下甚至大幅增加。虽然seaborn在保持与旧依赖的兼容性方面倾向于非常保守,但这在开发过程中造成了越来越大的痛苦。同时,这些库现在更易于安装。展望未来,seaborn很可能会与 Numpy community guidelines 版本支持。
此版本还删除了一些以前不推荐使用的功能:
这个
tsplot
功能和seaborn.timeseries
模块已被删除。记得吗tsplot
被替换为lineplot()
.这个
seaborn.apionly
入口点已被删除。这个
seaborn.linearmodels
模块(以前重命名为seaborn.regression
)已删除。
期待¶
现在seaborn是一个Python3库,它可以利用 keyword-only arguments . 未来的版本很可能会引入这种语法,可能是一种破坏性的方式。作为指导,大多数seaborn函数的签名
func(x, y, ..., data=None, **kwargs)
何处 **kwargs
在函数中指定。今后可能有必要具体说明 data
以及所有具有显式 key=value
映射。这种风格在整个文档中已经使用了很长时间,正式的需求至少在下一个主要版本中才会被引入。添加此功能将使使用更现代的功能(例如,添加本机 hue
语义函数,如 jointplot()
和 regplot()
)并将允许控制新特性的参数位于相关的附近,使它们更容易被发现。
v0.9.1(2020年1月)¶
这是一个小版本,有许多错误修复和对seaborn依赖项的修改。还有几个新特性。
这是seaborn的最终版本,将支持Python2.7或3.5。
新特点¶
增加了对绘制的元素的排列的更多控制
clustermap()
与{{dendrogram,colors}}_ratio
和cbar_pos
参数。此外,默认的组织和缩放与不同的数字大小已得到改进。增加了
corner
选择权PairGrid
和pairplot()
没有二元轴上三角的网格。添加了为用于在多个绘图中定义误差线的引导程序播种随机数生成器的功能。相关职能部门现在有了
seed
参数,可以采用固定种子(通常为int
)或numpy随机数生成器对象(或更新的numpy.random.Generator
或者更老的numpy.random.mtrand.RandomState
)把“对角线”轴的概念推广到
PairGrid
共享x和y变量的任何轴。在
PairGrid
, thehue
变量现在从组成网格行和列的默认变量列表中排除。暴露了
layout_pad
参数在PairGrid
并设置一个比matptlotlib设置的更小的默认值,以便在密集网格中更有效地利用空间。现在有可能强制对
hue
通过传递分类调色板的名称(例如。"deep"
或"Set2"
). 这是对(以前支持的)传递颜色列表/dict选项的补充。增加了
tree_kws
参数到clustermap()
控制树状图中线条的属性。添加了将层次标签名传递给
FacetGrid
legend,它还修复了relplot()
当同一个标签出现在不同的语义中时。改进了对分类图中基于索引信息的分组观测的支持。
错误修复和调整¶
避免了将单一数据传递给
kdeplot()
,而是发出警告。这使得pairplot()
更健壮。修正了
dropna
在里面PairGrid
设置为时从每个绘图中正确排除空数据点True
.修正了一个问题
regplot()
可能会干扰多打印matplotlib图形中的其他轴。语义变量
category
在关系图中,数据类型始终被视为分类的。避免了有关颜色规格的警告,因为
boxenplot()
在较新的matplotlibs上。适应matplotlib缩放轴边距方式的变化,这导致多次调用
regplot()
具有truncate=False
逐步扩展x轴限制。因为当前在matplotlib中自动缩放的工作方式有限制,所以truncate
在seaborn也被改为True
.当色调/大小数据被推断为数字但存储为字符串数据类型时,关系图不再出错。
关系图现在认为只有一个值(可以解释为布尔值(0或1))的语义是分类的,而不是数字的。
关系图现在可以处理
sizes
正确地。修复了中的问题
pointplot()
在matplotlib中,缺少色调变量的级别会在最近的更新后导致异常。修正了一个错误,当设置旋转的x记号标签上
FacetGrid
.修正了一个错误,当只有一个变量是一个变量时,值将被排除在分类图之外
Series
使用非默认索引。修复了使用时的错误
Series
对象作为的参数x_partial
或y_partial
在里面regplot()
.修正了通过
norm
对象和在中使用颜色注释clustermap()
.修复了注释没有重新排列以匹配中的群集的错误
clustermap()
.修复了尝试呼叫时的错误
set()
为调色板指定颜色列表时。修复了将颜色代码short hands重置为matplotlib默认值时的错误。
避免了即将到来的应用程序中更严格的类型检查带来的错误
numpy
变化。避免了错误/警告
lineplot()
当绘制具有空级别的分类时。允许
colors
传递给二元变量kdeplot()
.标准化自定义调色板函数的输出格式。
修正了一个错误,在关系图中,数字变量的图例可能会显示大量的小数位。
提高了对分布图中缺失值的鲁棒性。
可以指定
FacetGrid
使用matplotlib关键字参数的图例。
v0.9.0(2018年7月)¶
这是一个主要的发行版,有几个实质性的和长期以来所期望的新特性。此外,还对主题和调色板进行了更新/修改,使其与matplotlib 2.0保持了更好的一致性,并对API进行了一些显著的更改。
新关系图¶
添加了三个全新的绘图功能: relplot()
, scatterplot()
和 lineplot()
. 第一个是后两个的图形级接口,它将它们与 FacetGrid
. 这些函数将seaborn分类绘图函数的面向数据集的高级API引入到更通用的绘图(散点图和线图)。
这些函数可以可视化两个数值变量之间的关系,同时通过修改 hue
, size
和/或 style
语义学。通用的高级API在这两个函数中的实现方式不同。例如,在语义上 scatterplot()
缩放散点图点的面积,但以 lineplot()
它可以缩放线条打印线条的宽度。API是面向数据集的,这意味着在这两种情况下,都在数据集中传递变量,而不是直接指定要用于点面积或线宽的matplotlib参数。
关系函数与现有seaborn功能的另一个不同之处在于,它们更好地支持使用数字变量来实现 hue
和 size
语义学。此功能可以传播到可以添加 hue
未来版本中的语义;此版本中没有。
这个 lineplot()
该函数还支持统计估计,并正在取代旧的 tsplot
函数,该函数仍然存在,但在将来的版本中标记为要删除。 lineplot()
通过独立修改大小和样式语义,可以更好地与库的其余部分的API保持一致,并且在显示跨其他变量的关系方面更加灵活。它还大大改善了对日期和时间数据的支持,这是数据处理中的一个主要痛苦因素 tsplot
. 其代价是 tsplot
新函数中没有实现表示不确定性的方法(例如引导分布的颜色映射KDE)。
有相当多的新文档更详细地解释了这些新函数,包括中各种选项的详细示例 API reference 还有更冗长的 tutorial .
这些函数应该被认为是稳定的beta状态。他们已经过彻底的测试,但一些未知的角落案件可能仍有待发现。主要功能已经到位,但并非所有计划的功能都已实现。有些元素,特别是默认的图例,在这个版本中有点粗糙。最后,一些默认行为(例如点/线大小的默认范围)可能会在将来的版本中有所改变。
主题和选项板的更新¶
对seaborn样式的主题、上下文缩放和调色板进行了一些更改。总的来说,这些变化的目的是使海本风格更符合 style updates in matplotlib 2.0 并利用一些新的样式参数来更好地实现seaborn样式的某些方面。以下是更改列表:
重新组织和更新了一些
axes_style()
/plotting_context()
参数以利用matplotlib 2.0更新中的改进。最大的变化涉及到在“样式”规范中使用几个新参数,同时将用于实现相应美学的参数移动到“上下文”规范中。例如,轴脊椎和记号现在处于禁用状态,而不是将其宽度/长度归零以用于暗网格样式。这意味着这些元素的宽度/长度现在可以在不同的上下文中进行缩放。其效果是情节更具凝聚力,尤其是在更大的背景下。这些更改只包括对1.x matplotlib系列的最小支持。如果用户仍停留在matplotlib 1.5上,但希望使用seaborn样式,则可能希望使用可通过访问的seaborn参数 matplotlib stylesheet interface .更新了seaborn调色板(“deep”、“muted”、“colorbind”等),以符合新的10色matplotlib默认值。传统的调色板现在有“deep6”、“muted6”、“colorbind6”等。此外,为了更好的一致性、美观性和可访问性,对一些单独的颜色进行了调整。
调用
color_palette()
(或)set_palette()
)使用命名的定性调色板(即seaborn调色板、colorbrewer定性调色板或matplotlib matplotlib tableau派生调色板之一),并且没有指定数量的颜色将返回调色板中的所有颜色。这意味着对于某些选项板,返回的列表的长度将与以前版本中的不同。增强
color_palette()
以字符串形式接受cubehelix调色板的参数化规范,前缀为"ch:"
(例如)"ch:-.1,.2,l=.7"
). 请注意,关键字参数只能用它们的第一个字母拼写或引用。反转调色板是通过附加"_r"
,与其他matplotlib颜色贴图一样。本规范将被任何具有palette=
参数。稍微增加了中的基本字体大小
plotting_context()
并增加了"talk"
和"poster"
语境。调用
set()
我现在打电话来set_color_codes()
默认情况下重新指定单字母颜色代码的步骤
API更改¶
一些函数已重命名或对其默认参数进行了更改。
这个
factorplot
函数已重命名为catplot()
. 这个新名字抛弃了原来的R形词尾变化的术语,使用了一个更符合熊猫和seaborn本身术语的名字。这一改变有望使catplot()
更容易发现,它应该更清楚它的作用是什么。factorplot
仍然存在并将把它的论点传递给catplot()
带着警告。它可能最终会被移除,但过渡将是尽可能渐进的。The other reason that the
factorplot
name was changed was to ease another alteration which is that the defaultkind
incatplot()
is now"strip"
(corresponding tostripplot()
). This plots a categorical scatter plot which is usually a much better place to start and is more consistent with the default inrelplot()
. The old default style infactorplot
("point"
, corresponding topointplot()
) remains available if you want to show a statistical estimation.这个
lvplot
函数已重命名为boxenplot()
. “字母值”这一术语被用来命名原始类型的情节是晦涩难懂的,缩写为lv
没有任何帮助。新名称应该通过描述其格式(它绘制多个框,也称为“boxen”)使绘图更易于发现。与…一样factorplot
, thelvplot
功能仍然存在,以提供相对平稳的过渡。更名为
size
参数到height
在多重打印栅格对象中 (FacetGrid
,PairGrid
和JointGrid
)以及使用它们的函数 (factorplot
,lmplot()
,pairplot()
和jointplot()
)以避免与size
中使用的参数scatterplot
和lineplot
(必要时)relplot()
功),也使参数的含义更加清晰。更改了中的默认对角线图
pairplot()
使用func:kdeplot`时 `
"hue"`` 使用维度。已弃用的统计批注组件
JointGrid
. 该方法仍然可用,但将在将来的版本中删除。在早期版本中不推荐使用的两个旧函数,
coefplot
和interactplot
,已从代码库中最终删除。
文档改进¶
在改进文件方面已经做了一些努力。最大的变化是 introduction to the library 已经完全重写,以提供更多的信息和关键的例子。除了高层次的动机,介绍还涵盖了一些重要的话题,往往是混淆的来源,如数字级和轴级函数之间的区别,数据集应如何格式化,以用于seaborn,以及如何自定义绘图的外观。
在整个过程中还进行了其他改进,最显著的是对 categorical tutorial .
其他小增强和错误修复¶
改变
rugplot()
绘制matplotlibLineCollection
而不是很多Line2D
对象,为大型数组提供了很大的加速比。将默认的非对角绘图更改为使用
scatterplot()
. (注意"hue"
当前绘制三个单独的散点图,而不是使用散点图函数的色调语义。使用时更改颜色处理
kdeplot()
有两个变量。2D密度的默认颜色贴图现在遵循颜色循环,函数可以使用color
和label
kwargs,增加了更多的灵活性,避免了使用多打印网格时出现警告。增加了
subplot_kws
参数到PairGrid
以获得更大的灵活性。删除了
PairGrid
默认为在对角线轴上绘制堆叠的直方图。固定的
jointplot()
/JointGrid
和regplot()
所以他们现在接受列表输入。修正了一个错误
FacetGrid
使用单行/列级别或使用col_wrap=1
.修复了设置轴限制以便在matplotlib 2.0上保持自动缩放状态的函数。
避免了在使用不能呈现画布的matplotlib后端(例如PDF)时出错。
将安装基础结构更改为以
pip
意识到。这意味着pip install seaborn
将在空环境中工作。此外,依赖项是用严格的最小版本指定的。更新了测试基础结构以执行测试 pytest (尽管许多单独的测试仍然使用nose断言)。
v0.8.1(2017年9月)¶
在中添加了警告
FacetGrid
在传递分类图函数而不指定order
(或)hue_order
什么时候?hue
,这可能会生成不正确的绘图。改进了之间的兼容性
FacetGrid
或PairGrid
以及交互式matplotlib后端,以便在使用时图例不再保留在图形中legend_out=True
.更改了要使用的带有小绘图元素的分类绘图函数
dark_palette()
而不是light_palette()
从指定颜色生成顺序调色板时。改进的鲁棒性
kdeplot()
和distplot()
不到两次观测的数据。修正了一个错误
clustermap()
使用时yticklabels=False
.修正了一个错误
pointplot()
如果正好画了三个点,颜色就错了。修正了一个错误
pointplot()
其中缺少数据的图例项显示为空标记。修正了一个错误
clustermap()
在注释主热图和显示类别颜色时引发错误的位置。修正了一个错误
clustermap()
行标签重叠时未正确旋转的位置。修正了一个错误
kdeplot()
当绘制多个密度时,密度轴上的最大限制未更新。改进了与熊猫未来版本的兼容性。
v0.8.0(2017年7月)¶
导入seaborn时,将不再应用默认样式。现在有必要显式调用
set()
或一个或多个set_style()
,set_context()
和set_palette()
. 相应地seaborn.apionly
模块已被弃用。改变了
heatmap()
(延期)clustermap()
)当绘制不同的数据集时(即center
参数)。而不是将颜色贴图的上下限扩展为围绕center
值时,将修改颜色贴图,使其中间颜色与center
. 这意味着将不使用colormap的整个范围(除非指定了数据或属性)vmin
和vmax
是对称的),但色条的上限和下限将对应于数据的范围。请参阅Github pull请求 (#1184) 行为的例子。删除了中发散数据的自动检测
heatmap()
(延期)clustermap()
). 如果要将colormap视为发散的(请参见上文),现在需要指定center
价值观。未指定颜色映射时,指定center
仍会将默认值更改为更适合显示发散数据的值。添加了四个新的颜色映射,使用 viscm 感知的一致性。两个“发散”和“发散”地图(“发散”和“发散”地图)。这些colormaps在seaborn import上向matplotlib注册,可以在中访问colormap对象
seaborn.cm
命名空间。更改了默认值
heatmap()
彩色地图是“火箭”(在连续数据的情况下)或“冰火”(在发散数据的情况下)。请注意,此更改使亮度渐变的方向与以前的默认值相反。虽然这一更改可能会造成混乱和破坏,但它可以更好地将seaborn默认值与新的matplotlib默认colormap(“viridis”)对齐,并可以更好地将“热”映射的语义与colormap的外观对齐。补充
"auto"
作为中记号标签的(默认)选项heatmap()
和clustermap()
. 这将尝试估计在文本对象不重叠的情况下可以标记多少个记号,这将提高较大矩阵的性能。增加了
dodge
参数到boxplot()
,violinplot()
和barplot()
允许使用hue
不改变绘图元素的位置或宽度,如hue
varible未嵌套在主分类变量中。相应地
split
参数用于stripplot()
和swarmplot()
已重命名为dodge
与其他范畴功能的一致性(以及与split
在里面violinplot()
)增加了绘制双变量色条的功能
kdeplot()
与cbar
参数(及相关)cbar_ax
和cbar_kws
参数)。增加了在大多数统计函数中使用误差条来显示标准差而不是bootstrap置信区间的能力
ci="sd"
.允许特定于边的偏移
despine()
.地物大小不再是seaborn plotting上下文参数的一部分。
对所使用的垃圾箱数量加以限制
jointplot()
对于type=="hex"
避免参考规则规定太多时挂起。在中更改了y轴
heatmap()
. 不再在内部反转数据行,而是反转y轴。这可能会影响以数据坐标绘制在热图顶部的代码。关闭中的树状图轴
clustermap()
而不是将背景色设置为白色。新的matplotlib定性调色板(例如“tab10”)现在可以正确处理。
一些模块和函数已在内部重新组织;对使用
seaborn
命名空间。向添加了弃用警告
tsplot
函数,用于指示在将来的版本中,它将被删除或替换为经过实质性修改的版本。这个
interactplot
和coefplot
函数已被正式弃用,并将在将来的版本中删除。
v0.7.1(2016年6月)¶
添加了在绘制的误差线上设置“上限”的功能
barplot()
或pointplot()
(以及,factorplot
). 此外,现在可以控制误差线的线宽。这些变化涉及到新的参数capsize
和errwidth
. 见 github pull request (#898) 例如用法。改进了行和列的颜色显示
clustermap()
. 现在可以为这些元素传递Pandas对象,如果可能,Pandas对象中的语义信息将用于向绘图添加标签。使用熊猫对象时,颜色数据将根据索引而不是位置与主热图匹配。这更准确,但如果当前代码假定位置匹配,则可能会导致不同的结果。改进了确定中注释颜色的亮度计算
heatmap()
.这个
annot
参数heatmap()
现在除了接受布尔值外,还接受一个矩形数据集。如果传递了数据集,则其值将用于注释,而主数据集将用于热图单元格颜色。修正了一个错误
FacetGrid
在使用col_wrap
与失踪col
水平。可以将记号定位器对象传递给
heatmap()
色条。可以使用不同的样式(例如,step)来
PairGrid
有多个色调级别时的直方图。修正了基于scipy的单变量核密度带宽计算中的一个错误。
这个
reset_orig()
函数(扩展为导入seaborn.apionly
)将matplotlib rcParams重置为导入seaborn本身时的值,这样可以更好地处理jupyter笔记本后端更改的rcParams。从顶层删除了一些对象
seaborn
命名空间。改进的unicode兼容性
FacetGrid
.
v0.7.0(2016年1月)¶
这是0.6的主要版本。主要的新功能是 swarmplot()
它实现了beesarm方法来绘制分类散点图。为了与新版本的依赖项兼容,还进行了一些性能改进、错误修复和更新。
增加了
swarmplot()
函数,绘制蜂群图。这些是分类散点图,类似于stripplot()
但为了避免重叠点,选择了分类轴上点的位置。看到了吗 categorical plot tutorial 更多信息。改变了一些
stripplot()
默认值更接近swarmplot()
. 点现在稍微小一些,没有轮廓,并且在使用时默认不拆分hue
. 这些设置可通过函数参数进行自定义。在确定附加类别时添加的附加规则的顺序。现在,当在分类角色中使用数字变量时,默认行为是对变量的唯一级别进行排序(即它们将以正确的数字顺序排列)。这仍然可以由适当的
{{*_}}order
和一个参数category
即使级别是严格数字,数据类型仍将遵循类别顺序。怎么变的
stripplot()
使用时绘制点hue
嵌套split=False
所以不同的hue
水平不是严格地画在彼此的上面。提高中大型树状图的性能
clustermap()
.补充
font.size
打印上下文定义,以便plt.text
将适当缩放。修正了一个错误
clustermap()
什么时候?fastcluster
未安装。修复了中zscore计算中的一个错误
clustermap()
.修正了一个错误
distplot()
其中,有时默认的箱数不是整数。修正了一个错误
stripplot()
图例项不会出现在hue
如果在第一组点中没有观察到,则为水平。热图色条现在被栅格化,以便在矢量图中获得更好的性能。
添加了一些matplotlib boxplot问题的解决方法,例如异常点的奇怪颜色。
为violinplot边丢失或具有随机颜色的问题添加了解决方法。
添加了一个解决问题的方法,其中只有一个
heatmap()
单元格将在一些matplotlib后端进行注释。修正了matplotlib新版本中的一个错误,即颜色映射将错误地应用于只有三个观测值的散点图。
更新了seaborn以与matplotlib 1.5兼容。
在使用小部件的函数中增加了对各种IPython(和Jupyter)版本的兼容性。
v0.6.0(2015年6月)¶
这是0.5的主要版本。此版本的主要目标是统一分类图的API,这意味着在一些旧函数中有一些相对较大的API更改。有关这些更改的详细信息,请参见下文,这些更改可能会破坏为seaborn的旧版本编写的代码。还有一些新功能 (stripplot()
和 countplot()
),对现有函数的大量增强,以及错误修复。
此外,文档已经为0.6版本进行了完全的修改和扩展。现在,每个函数的API docs页面都有多个示例,其中嵌入了显示如何使用各种选项的绘图。这些页面应该被认为是示例中最全面的资源,教程页面现在已经简化,面向各种功能的更高级别概述。
分类图的更改和更新¶
在版本0.6中,“分类”绘图已与公共API统一。这类新函数将显示一个数值变量和一个或两个分类变量之间关系的绘图组合在一起。这包括显示每个箱子中数值变量分布的绘图 (boxplot()
, violinplot()
和 stripplot()
)以及在每个箱子内应用统计估计的绘图 (pointplot()
, barplot()
和 countplot()
). 有一个新的 tutorial chapter 介绍了这些功能。
分类函数现在每个都接受相同格式的输入数据,并且可以以相同的方式调用。它们可以使用长格式或宽格式数据进行绘图,并且可以垂直或水平绘制。使用长格式数据时,根据输入数据的类型推断出绘图的方向。此外,所有函数本机采用 hue
变量添加第二层分类。
使用(在某些情况下是新的)API,这些函数都可以由 FacetGrid
. 然而, factorplot
现在还可以创建这些类型的绘图的切面验证,因此在大多数情况下不需要使用 FacetGrid
直接。默认情况下, factorplot
绘制点图,但这由 kind
参数。
以下是统一这些API过程中发生的变化的详细信息:
改变到
boxplot()
和violinplot()
可能是最具破坏性的。这两个函数在它们可以接受的数据类型方面都保持向后兼容性,但是语法已经更改为与其他seaborn函数更相似。这些函数现在通过x
和/或y
在传递给新对象的长格式数据帧中作为数据向量或变量名的参数data
参数。您仍然可以将宽格式的数据帧或数组传递给data
,但它不再是第一个位置参数。看到了吗 github pull request (#410) 有关这些更改及其背后的逻辑的更多信息。AS
pointplot()
和barplot()
现在可以用y轴上的主分类变量x_order
参数已重命名为order
.增加了一个
hue
参数boxplot()
和violinplot()
,它允许通过第三个分类变量对绘图元素进行嵌套分组。为了violinplot()
,这种嵌套也可以通过分裂小提琴时,有两个层次的hue
变量(使用split=True
). 为了使此功能可行,已取消指定在数据坐标中绘制绘图的位置的功能。这些绘图现在在设定的位置绘制,如(和相同)barplot()
和pointplot()
.增加了一个
palette
参数到boxplot()
/violinplot()
. 这个color
参数仍然存在,但不再承担接受seaborn调色板名称的双重责任。palette
替代物color
这样就可以和FacetGrid
.
除了这些API更改外,还对plotting函数进行了以下更改/增强:
类别排序的默认规则已更改。现在,绘图不再自动对类别级别进行排序,而是按照级别在输入数据中的显示顺序(即
Series.unique()
). 使用打印时可以指定顺序order
和hue_order
参数。此外,当变量是具有“分类”数据类型的对象时,将从数据对象推断类别顺序。这种变化也会影响FacetGrid
和PairGrid
.增加了
scale
和scale_hue
参数到violinplot()
. 这些控制小提琴的宽度是如何缩放的。默认值为area
,这与小提琴以前的作曲方式不同。使用scale='width'
以获得旧的行为。使用了不同的样式
box
一种内部情节violinplot()
,它显示了除四分位数外的晶须范围。使用inner='quartile'
以得到旧的风格。
新的绘图功能¶
增加了
stripplot()
函数,它绘制一个散点图,其中一个变量是分类的。此绘图的API与boxplot()
和violinplot()
. 它是有用的,无论是在它自己和组成时,这些其他类型的绘图显示观察和潜在的分布。增加了
countplot()
函数,它使用条形图表示来显示一个或多个分类箱中的变量计数。这将取代旧的调用方法barplot()
没有数字变量。
其他添加和更改¶
这个
corrplot()
以及潜在的symmatplot()
函数已被弃用,取而代之的是heatmap()
,它更加灵活和健壮。这两个函数在版本0.6中仍然可用,但在将来的版本中它们将被删除。增加了
set_color_codes()
函数和color_codes
参数set()
和set_palette()
. 这将更改matplotlib中速记颜色代码(即“b”、“g”、“k”等)的解释,以使用其中一个命名的seaborn调色板(即“deep”、“muted”等)中的值。这使得直接将matplotlib函数与seaborn imported一起使用时更容易获得更统一的外观。这可能会破坏现有绘图,因此默认情况下不会发生。这可能在未来发生变化。这个
color_palette()
当传递到函数中时,该函数不再修剪长度超过6种颜色的选项板。增加了
as_hex
方法返回调色板对象,以返回十六进制代码列表而不是rgb元组。jointplot()
现在将其他关键字参数传递给用于在关节轴上绘制绘图的函数。更改了默认值
linewidths
在里面heatmap()
和clustermap()
设置为0,以便较大的矩阵正确绘制。这个参数仍然存在,可以用来获得热图中划分每个单元格的旧效果(旧的默认值)linewidths
为0.5)。heatmap()
和clustermap()
现在自动为缺少的值使用一个掩码,该掩码以前是用colormap per default的“under”值显示的plt.pcolormesh
行为。增加了
seaborn.crayons
词典和词典crayon_palette()
函数定义120框中的颜色(!)属于 Crayola crayons .增加了
line_kws
参数到residplot()
在使用时更改下线的样式。添加了开放式
**kwargs
到add_legend
方法对FacetGrid
和PairGrid
,在调用Figure
或Axes
.增加了
gridspec_kws
参数到FacetGrid
,它允许控制网格中各个面的大小,以强调某些绘图或说明变量范围的差异。交互式调色板小部件现在显示一个连续的颜色条,而不是一个离散的调色板,当
as_cmap
是True。默认轴大小
pairplot()
和PairGrid
现在稍微小了一点。增加了
shade_lowest
参数到kdeplot()
它将最低轮廓级别的alpha设置为0,使得在同一轴上绘制多个双变量分布更加容易。这个
height
参数rugplot()
现在被解释为轴大小的函数,并对该轴上的数据比例变化保持不变。默认情况下,地毯线也会稍微窄一些。添加了一个陷阱
distplot()
计算默认箱子数时。对于高度倾斜的数据,它现在将使用sqrt(n)bin,以前引用规则将返回“无限”bin并在matplotlib中引起异常。将上限(50)添加到用于
distplot()
直方图。这将有助于避免将错误与某些类型的数据集混淆,因为这些数据集严重违反了用于获取默认箱数的引用规则的假设。通过特定数量的垃圾箱时不应用天花板。可以传递给各个属性字典
plt.boxplot
现在应用在seaborn重新样式化之后,以允许完全定制。增加了一个
savefig
方法到JointGrid
默认为紧边界框,以便使用此类更容易保存图形,并将紧边界框设置为savefig
方法。现在可以将整数传递给
xticklabels
和yticklabels
参数heatmap()
(以及,clustermap()
). 这将使绘图使用从数据推断出的记号标签,但只能每隔n
标签,在哪里n
是你通过的号码。这有助于将较大的矩阵可视化,并对数据帧的行或列进行合理的排序。补充
"figure.facecolor"
设置样式参数,并将默认值设置为白色。这个
load_dataset()
函数现在在下载数据集后在本地缓存它们,并在后续调用中使用本地副本。
错误修复¶
修复了中的错误
clustermap()
未使用树状图重新组织遮罩和指定标签。修正了一个错误
FacetGrid
和PairGrid
这会导致错误的图例标签,当hue
变量出现在hue_order
但数据里没有。修正了一个错误
FacetGrid.set_xticklabels()
或FacetGrid.set_yticklabels()
什么时候?col_wrap
正在被使用。修正了一个错误
PairGrid
何处hue_order
参数被忽略。修复了中的两个错误
despine()
在尝试修剪轴反转或没有刻度的绘图上的脊椎时,这会导致错误。改进了对
margin_titles
选择权FacetGrid
,现在可以与图例一起使用。
v0.5.1(2014年11月)¶
这是一个错误修复版本,包括matplotlib 1.4.2中一个问题的解决方法,以及0.5.0中新函数中两个错误的修复方法。
针对matplotlib 1.4.2中的一个错误实现了一种解决方法,该错误在设置seaborn样式时阻止绘制点标记。看到这个了吗 github issue 更多信息。
修正了一个错误
heatmap()
其中掩码相对于数据垂直反转。修正了一个错误
clustermap()
当使用侧边颜色的嵌套列表时。
v0.5.0(2014年11月)¶
这是0.4的主要版本。亮点包括绘制热图的新功能,可能是在应用聚类算法发现结构化关系时。这些函数由新的自定义colormap函数和一整套IPython小部件补充,这些小部件允许交互式选择colormap参数。调色板教程已经重写,以涵盖这些新的工具,更一般地提供如何在可视化中使用颜色的指导。还有一些较小的更改和错误修复。
绘图功能¶
增加了
heatmap()
通过对值进行颜色编码来可视化数据矩阵的函数。有关更多信息,请参阅文档。增加了
clustermap()
用于聚类和可视化数据矩阵的函数,具有按颜色标记单个行和列的选项。有关更多信息,请参阅文档。这项工作由奥尔加·博特文尼克领导。lmplot()
和pairplot()
获取新的关键字参数,markers
. 这可以是一种标记,也可以是每个级别的不同标记的列表hue
变量。使用不同颜色的不同标记应该让情节在复制成黑白(即印刷时)时更容易理解。看到了吗 github pull request (#323) 举个例子。一般来说,在中有一个新的关键字参数
FacetGrid
和PairGrid
,hue_kws
. 同样地,这也让情节美学在色调变量的不同层次上有所不同,但更加灵活。hue_kws
应该是一个字典,它将关键字参数的名称映射到与hue变量的级别数一样长的值列表。争论
subplot_kws
已添加到FacetGrid
. 这允许使用自定义投影进行分面打印,包括 maps with Cartopy .
调色板¶
添加了两个新函数来创建自定义调色板。对于顺序选项板,可以使用
light_palette()
函数,它采用一种种子颜色,并从一个非常轻的,不饱和的变体创建一个渐变。对于不同的选项板,可以使用diverging_palette()
函数在两个端点之间创建一个到亮或暗中点的平衡渐变。看到了吗 palette tutorial 更多信息。添加了指定种子颜色的功能
light_palette()
和dark_palette()
作为一个元组husl
或hls
空间值或作为命名xkcd
颜色。种子颜色的解释现在由新的input
这些函数的参数。添加了几个新的交互式调色板小部件:
choose_colorbrewer_palette()
,choose_light_palette()
,choose_dark_palette()
和choose_diverging_palette()
. 为了保持一致性,将cubehelix小部件重命名为choose_cubehelix_palette()
(并修复了cubehelix调色板反转的错误)。这些函数现在在调用时还返回调色板列表或matplotlib colormap,并且该对象将在您使用小部件时实时更新。这将使在绘图上迭代变得容易,直到找到数据的良好表示。看到了吗 Github pull request 或 this notebook (download it to use the widgets) 更多信息。彻底改变了颜色 palette tutorial 在选择一种或多种颜色的资料时,可以为他们的讨论提供动力。
错误修复¶
修正了一个错误
PairGrid
当输入数据帧具有非默认索引时,会产生错误的结果(或崩溃)。修正了一个错误
PairGrid
传递数据类型为date的列时引发异常。修正了一个错误
lmplot()
当色调变量也用于行或列时,将显示图例(使图例冗余)。解决了matplotlib的一个bug,这个bug在
boxplot()
以蓝色出现。kdeplot()
现在接受熊猫系列data
和data2
争论。在中使用非默认相关方法
corrplot()
现在暗示sig_stars=False
由于用于检验相关性显著性值的排列检验使用皮尔逊度量。远离的
pdf.fonttype
从样式定义来看,由于版本0.4中使用的值导致了非常大的PDF文件。
v0.4.0(2014年9月)¶
这是0.3的主要版本。亮点包括 quick, high-level dataset exploration (同时还有一个 flexible interface )轻松创建 perceptually-appropriate color palettes 使用cubehelix系统。除了这些附加功能之外,还有一些较小的更改,使得使用seaborn可视化数据变得更容易、更强大。
绘图功能¶
一个新物体,
PairGrid
,以及相应的函数pairplot()
,用于在数据集中绘制成对关系的网格。这种类型的绘图有时被称为“散点图矩阵”,但数据在PairGrid
具有灵活性,可以使用散点图以外的许多样式。看到了吗 docs 更多信息。 注: 由于matplotlib的旧版本中存在错误,如果将这些函数与matplotlib 1.4或更高版本一起使用,将获得最佳效果。当变量映射到不同的颜色时,选择默认调色板的规则是统一的(因此在某些情况下会发生更改)。现在,当没有请求特定的调色板时,将使用当前的全局调色板,除非要映射的变量数量超过调色板中唯一颜色的数量,在这种情况下
"husl"
将用于避免循环。添加了关键字参数
hist_norm
到distplot()
. 当distplot()
现在绘制时没有KDE或参数密度,直方图是作为计数而不是密度绘制的。这可以通过设置hist_norm
到True
.使用时
FacetGrid
用一个hue
变量时,默认情况下调用时不再绘制图例FacetGrid.map()
. 相反,你必须打电话FacetGrid.add_legend()
手动。这样可以更容易地将多个绘图分层到网格上,而不需要重复的图例。对进行了一些更改
factorplot
所以当不是所有级别的x
变量在每个方面都有表示。增加了
logx
选择权regplot()
用于在对数空间中拟合回归。什么时候?
violinplot()
遇到一个只有一个观测值的bin,它现在将在该值处绘制一条水平线,而不是出错。
样式和调色板¶
增加了
cubehelix_palette()
用于从cubehelix系统生成顺序调色板的函数。看到了吗 palette docs 有关如何使用这些选项板的详细信息。还有一个问题choose_cubehelix()
它将启动一个交互式应用程序来选择笔记本中的cubehelix参数。增加了
xkcd_palette()
以及xkcd_rgb
字典,以便使用 xkcd color survey .增加了
font_scale
选择权plotting_context()
,set_context()
和set()
.font_scale
可以独立增大或减小绘图中字体元素的大小。字体处理应该在没有安装Arial的系统上工作得更好。这是通过添加
font.sans-serif
字段到axes_style
在matplotlib默认值前面加上Arial和Liberation Sans的定义。字体系列也可以通过font
中的关键字参数set()
. 由于matplotlib的错误,这可能无法在matplotlib 1.3上正常工作。这个
despine()
函数获取新的关键字参数offset
,替换已弃用的offset_spines()
功能。在打印数据之前,不再需要偏移脊椎。为添加了默认值
pdf.fonttype
所以PDF中的文本在Adobe Illustrator中是可编辑的。
其他API变更¶
删除了已弃用的
set_color_palette
和palette_context
功能。在版本0.3中,这些被替换为set_palette()
功能和使用能力color_palette()
直接在with
语句。删除了指定
nogrid
样式,已重命名为white
在0.3。
v0.3.1(2014年4月)¶
这是0.3的一个小版本,修复了几个bug。
绘图功能¶
中点的大小
pointplot()
和factorplot
现在使用线宽进行缩放,以便在不同的打印上下文中获得更好的美观效果。这个
pointplot()
色调变量的不同级别的图示符以不同的z顺序绘制,以便它们看起来是一致的。
v0.3.0(2014年3月)¶
这是0.2的主要版本,对打印功能和样式进行了许多增强。亮点包括 FacetGrid
, factorplot
, jointplot()
,以及对 style management . 还有很多新文档,包括 example gallery 重新组织 tutorial .
新的绘图功能¶
这个
FacetGrid
类为seaborn添加了一种新形式的功能,提供了一种抽象地构造与数据集子集相对应的绘图网格的方法。它可以与多种绘图函数(包括大多数matplotlib和seaborn API)一起使用。看到了吗 tutorial 更多信息。版本0.3引入了
factorplot
在精神上与lmplot()
当主变量是独立变量而不是独立变量时。factorplot
可以使用相应的轴级别函数以点或条形表示绘制绘图pointplot()
和barplot()
(也是新的)。此外factorplot
函数可用于在分面网格上绘制方框图。有关如何使用这些函数的示例,可以参考教程。另一个新功能是
jointplot()
,它是使用新的JointGrid
对象。jointplot()
概括了regplot()
在seaborn的早期版本中 (regplot()
在0.3中有所变化;详情见下文),通过绘制两个变量之间关系的双变量图,并在图的侧面绘制其边缘分布。与jointplot()
,您可以像以前一样绘制散点图或回归图,但现在也可以使用适当的单变量图为边际分布绘制双变量核密度或hexbin图。此外,它很容易使用JointGrid
直接建立更复杂的绘图时提供的默认方法jointplot()
不适合您的可视化问题。的教程JointGrid
有更多关于此对象如何有用的示例。这个
residplot()
功能互补regplot()
并且可以通过计算和绘制简单回归的残差来快速诊断线性模型的问题。还有一个"resid"
好样的jointplot()
.
API更改¶
最明显的变化是
regplot()
不再生成沿边缘轴分布的多分量图。相反。regplot()
现在是一个“轴级”函数,可以绘制到特定轴集上的任何现有图形中。regplot()
和lmplot()
也统一了(后者在幕后使用前者),所以所有关于如何拟合和表示回归模型的选项都可以用于这两个函数。去了解regplot()
使用jointplot()
具有kind="reg"
.如上所述,
lmplot()
已重写以利用FacetGrid
机械。这涉及到一些变化。这个color
关键字参数已替换为hue
,以提高整个包的一致性。这个hue
参数将始终采用一个变量 name ,同时color
将采用颜色名称或(在某些情况下)调色板。这个lmplot()
函数现在返回FacetGrid
用于绘制绘图实例。matrc和plotlib函数与已更新的标准化参数交互。现在有三对函数,
axes_style()
和set_style()
,plotting_context()
和set_context()
和color_palette()
和set_palette()
. 在每种情况下,两个对都采用完全相同的参数。第一个函数定义并返回参数,第二个函数设置matplotlib默认值。此外,每一对中的第一个函数可以在with
语句临时更改默认值。style和context函数现在也接受matplotlib rc参数的字典来覆盖seaborn默认值,并且set()
现在还需要一个字典来更新任何matplotlib默认值。看到了吗 tutorial 更多信息。这个
nogrid
样式已被弃用并更改为white
为了更加统一(即现在有darkgrid
,dark
,whitegrid
和white
风格)。
其他变化¶
使用软件包¶
如果您想使用软件包提供的绘图函数,而不将matplotlib样式设置为seaborn主题,现在可以这样做
import seaborn.apionly as sns
或from seaborn.apionly import lmplot
,等等。这是使用(也是新的)reset_orig()
函数,该函数将rc参数返回到matplotlib导入时的状态,即它们将遵守任何自定义设置matplotlibrc
matplotlib默认值之上的设置。包的依赖性负载已减少。它现在只能安装和使用
numpy
,scipy
,matplotlib
和pandas
. 尽管statsmodels
对于完整功能,仍建议使用,但不是必需的。
绘图功能¶
风格¶
有一种新的风格,
dark
,它与darkgrid
但默认情况下不绘制栅格。There is a new function,
offset_spines()
, and a corresponding option indespine()
calledtrim
. Together, these can be used to make plots where the axis spines are offset from the main part of the figure and limited within the range of the ticks. This is recommended for use with theticks
style.其他方面的海生风格已调整为更具吸引力的情节。
v0.2.1(2013年12月)¶
这是一个错误修复版本,没有新功能。
错误修复¶
改变了
violinplot()
和boxplot()
当使用Series
对象作为数据并执行groupby
为存储箱分配数据以解决0.13中出现的问题。另外固定了
groupby
用一个字典或一组代码来工作。修正了kde拟合的工件可能未命中并创建密度轴开始低于0的绘图的错误。
确保用于kde拟合的数据是双类型的,以避免低级别的statsmodels错误。
改变了直方图仓位宽度参考规则的实现,以估计仓位数量为上限。
v0.2.0(2013年12月)¶
这是0.1的一个主要版本,有许多API更改、增强和错误修复。
亮点包括对timeseries plotting的全面修改,以智能地使用新功能dataframes interactplot()
为了可视化连续的相互作用,双变量核密度估计 kdeplot()
,以及对调色板处理的显著改进。
版本0.2还引入了对python3的实验性支持。
除了库增强功能外,文档已被大量重写,以反映新功能并改进包背后思想的表示。
API更改¶
这个
tsplot()
函数被重写以接受长格式的数据DataFrame
并根据情况画出不同的痕迹。这引入了一个相对较小但不可避免的API更改,而不是sns.tsplot(time, heights)
,你现在必须这样做sns.tsplot(heights, time=time)
(thetime
参数现在是可选的,以便更快地指定简单绘图)。此外"obs_traces"
和"obs_points"
中的错误样式tsplot()
已重命名为"unit_traces"
和"unit_points"
,分别。符合核密度估计的函数 (
kdeplot()
和violinplot()
)现在使用statsmodels
而不是scipy
,以及相应改变影响的参数。这允许在指定带宽和内核时增加灵活性,并允许在定义支持范围时进行更智能的选择。默认选项应生成非常接近旧默认值的绘图。这个
kdeplot()
函数现在使用数据的第二个位置参数来绘制双变量密度。这个
violin()
功能已更改为violinplot()
,以保持一致性。在0.2中,violin
仍然有效,但会引发UserWarning
.
新的绘图功能¶
这个
interactplot()
函数为交互式线性模型绘制等高线图(即等高线显示y-hat
从模型中y ~ x1 * x2
)在两个预测变量之间的散点图上。这个图应该有助于理解两个连续变量之间的相互作用。这个
kdeplot()
函数现在可以绘制一个二维密度估计作为一个等值线图,如果提供了二维输入数据。这个
palplot()
函数提供了一个简单的基于网格的调色板可视化。
其他变化¶
绘图功能¶
这个
corrplot()
函数可以在没有相关系数注释的情况下绘制,并且可以在绘图的一侧使用变量名来处理大型数据集。此外,
corrplot()
根据指定测试的方向智能地设置调色板。这个
distplot()
直方图使用一个参考规则来选择箱子大小,如果它没有提供。增加了
x_bins
选择权lmplot()
对于一个连续的预测变量,允许更清晰的趋势与许多数据点。增强了对基于
name
几种分布图函数的属性及其应用tsplot()
实现更智能的集成。分散点
lmplot()
有点透明,所以很容易看到观察重叠的地方。增加了
order
参数到boxplot()
和violinplot()
使用熊猫对象时控制箱子的顺序。当一个
ax
参数未提供给绘图函数,它将获取当前活动轴,而不是绘制新轴。
调色板¶
增加了
dark_palette()
和blend_palette()
用于动态创建混合调色板。调色板机器现在是智能的定性色板 (
Set1
,Paired
,等等),它们被适当地视为离散的。Seaborn调色板 (
deep
,muted
等)已在基本色调顺序方面进行了标准化,所有调色板现在都有6种颜色。介绍
{{mpl_palette}}_d
调色板,它使调色板具有源调色板的基本配色方案,但具有从深色到浅色的顺序混合,以用于线/散点图/等高线图。增加了
palette_context()
用于由控件控制的块式调色板的函数with
语句。
打印样式¶
增加了
despine()
用于轻松移除曲线刺的功能。新的情节风格,
"ticks"
已被添加。在所有样式中,记号标签都会在离轴稍远的位置填充,以避免在(0,0)处发生冲突。
一般一揽子问题¶
通过分解整块
plotobjs
模块按组成图的总体目标分成更小的模块。移除
scikits-learn
中的依赖关系moss
.与一起安装
pip
应该自动安装大多数缺少的依赖项。示例笔记本现在用作自动测试套件。
错误修复¶
修复了标签与的数据不匹配的错误
boxplot()
和violinplot()
使用groupby时。修复了
desaturate()
功能。修复了
coefplot()
图形尺寸计算。修正了一个错误
regplot()
列表输入阻塞。修正了绘制水平箱线图时的错误行为。
指定
distplot()
直方图现在起作用了。修正了一个错误
kdeplot()
将重置轴高度并切断现有数据。轴已移出所有顶层样式
seaborn.set()
功能,以便可以干净地更改上下文或调色板。