原文:http://seaborn.pydata.org/introduction.html
Seaborn简介
Seaborn是一个用Python制作统计图形的库。它建立在matplotlib之上,并与Pandas数据结构紧密集成。
Seaborn可帮助您探索和理解您的数据。它的绘图功能对包含整个数据集的数据框和数组进行操作,并在内部执行必要的语义映射和统计聚合以生成信息图。其面向数据集的声明式API让您可以专注于绘图的不同元素的含义,而不是如何绘制它们的细节。
1. 我们的第一个seaborn图
这是seaborn可以做什么的一个例子:
# Import seaborn
import seaborn as sns
# Apply the default theme
sns.set_theme()
# Load an example dataset
tips = sns.load_dataset("tips")
# Create a visualization
sns.relplot(
data=tips,
x="total_bill", y="tip", col="time",
hue="smoker", style="smoker", size="size",
)
这里发生了一些事情。 让我们一一介绍:
# Import seaborn
import seaborn as sns
Seaborn 是我们需要为这个简单示例导入的唯一库。按照惯例,它是用缩写sns导入的。
在幕后,seaborn使用matplotlib绘制绘图。对于交互式工作,建议在matplotlib模式下使用Jupyter或IPython接口,否则,当您想查看绘图时,必须调用 matplotlib.pyplot.show()。
# Apply the default theme
sns.set_theme()
这使用了matplotlib rcParam系统,并且会影响所有matplotlib图的外观,即使您没有使用seaborn制作它们。除了默认主题之外,还有其他几个选项,您可以独立控制绘图的样式和缩放比例,以在演示上下文之间快速转换您的工作(例如,制作在演讲期间投影时具有可读字体的图形版本)。如果您喜欢matplotlib默认值或喜欢不同的主题,您可以跳过这一步并仍然使用seaborn绘图功能。
(注:出现错误提示module ‘seaborn’ has no attribute ‘set_theme’,可能为Seaborn版本较老,在cmd中使用指令pip install -U seaborn即可)
# Load an example dataset
tips = sns.load_dataset("tips")
文档中的大多数代码将使用load_dataset()函数来快速访问示例数据集。这些数据集没有什么特别之处:它们只是Pandas数据帧,我们可以使用 pandas.read_csv()加载它们或手动构建它们。文档中的大多数示例将使用Pandas数据框指定数据,但seaborn对于它接受的数据结构非常灵活。
(注:若出现错误“TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败”,可能为计算机C:/user/用户名/ 文件夹内无seaborn-data文件夹,该文件夹可在https://github.com/mwaskom/seaborn-data下载)
# Create a visualization
sns.relplot(
data=tips,
x="total_bill", y="tip", col="time",
hue="smoker", style="smoker", size="size",
)
该图采用对seaborn函数relplot()的一次调用,显示了tips数据集中五个变量之间的关系。注意我们是如何仅提供变量的名称及其在图中的作用的。与直接使用matplotlib不同,我们没有必要根据颜色值或标记代码指定绘图元素的属性。在幕后,seaborn处理了从数据帧中的值到matplotlib理解的参数的转换。这种声明式方法让您可以专注于想要回答的问题,而不是关注如何控制matplotlib的细节。
2. 跨可视化的API抽象
没有普适的方式来可视化数据。不同的问题最好用不同的图来回答。通过使用一致的面向数据集的API,Seaborn可以轻松地在不同的视觉表示之间切换。
函数relplot()以这种方式命名是因为它旨在可视化许多不同的统计关系。虽然散点图通常很有效,但用一条线更好地表示一个变量代表时间度量的关系。relplot()函数有一个方便的kind参数,可让您轻松切换到此替代表示: