作为一名数据科学家,日常工作涉及到大量的实验和探索。这意味着非常依赖于数据可视化来探索正在处理的数据集。正如本·施奈德曼(Ben Shneiderman)所说,数据可视化能够回答甚至未曾考虑过的问题。毕竟,一张图片胜过千言万语!
这自然引出了一个价值百万的问题——应该使用哪个Python库进行数据可视化?市面上有很多选择,即使是经验丰富的数据科学家也可能在众多Python库提供的丰富功能中迷失方向。
因此,想写这篇文章来阐述不同数据可视化Python库的优势和独特功能。将介绍Python支持的一些令人惊叹的可视化库。每个库都有其独特的风格,对于特定类型的可视化任务非常有用。
可能已经在数据科学之旅中使用过Matplotlib。从数据科学的初学者到构建复杂数据可视化的经验丰富的专业人士,Matplotlib通常是数据科学家首选的默认可视化Python库。
Matplotlib以其提供的高灵活性而闻名,作为一个2D绘图库在Python中。如果有MATLAB编程背景,会发现Matplotlib的Pyplot界面非常熟悉。很快就能开始第一次可视化!
Matplotlib的独特之处在于它可以在Python中的多种方式使用,包括Python脚本、Python和iPython shell、Jupyter Notebooks等!这就是为什么它通常不仅被数据科学家用来创建可视化,也被研究人员用来创建出版质量的图表。
Matplotlib支持所有流行的图表(条形图、直方图、功率谱、条形图、误差图、散点图等)直接使用。还有一些扩展,可以用它们来创建高级可视化,如3D图表等。
个人喜欢Matplotlib的原因是,因为它非常灵活,它允许用户在最细粒度的级别控制可视化的各个方面,从图表中的单条线或点到整个图表。这意味着可以在最高级别进行定制。
以下是一些有用的Matplotlib学习教程:
当看到Seaborn构建的可视化时,只有一个词浮现在脑海中——美丽!Seaborn是建立在Matplotlib之上的,提供了一个非常简单直观的界面来构建可视化。使用Seaborn时,还会注意到许多默认设置在图表中工作得非常好。
Seaborn的独特之处在于它被设计成这样,写更少的代码就能实现高级可视化。这里有一个简单性的例子。注意可以用只有一行绘图代码创建复杂的可视化:
sns.relplot(x="data1", y="data2", kind="scatter")
Seaborn的第二个有用特性是它支持许多高级图表,如分类绘图(catplot)、使用kde的分布绘图(distplot)、蜂群图等,直接使用。当然,在上面的relplot中看到了一个例子。
由于Seaborn是建立在Matplotlib之上的,它与Matplotlib高度兼容。这意味着在构建可视化时,可以从Seaborn已经支持的高级图表开始,然后根据需要用Matplotlib进行尽可能多的自定义。
以下是一些有用的Seaborn学习资源,可以利用它们开始使用Seaborn库进行数据可视化:
Bokeh是一个旨在生成对Web界面和浏览器友好的可视化库。这就是这个可视化库特别针对的。
还会注意到,从Bokeh生成的可视化是交互式的,这意味着可以通过图表以更直观的方式传达信息。
Bokeh的独特之处在于它支持独特的可视化,如地理空间图表、网络图等,直接使用。如果想在浏览器中展示这些可视化,有选项可以导出它们,还可以使用JavaScript本身!
以下是一个很好的Bokeh数据可视化学习教程:
Altair是一个声明式的数据可视化库。它的原则是,与其关注代码部分,不如关注可视化部分,尽可能少地编写代码,同时仍然能够创建美观直观的图表。这正是菜!
由于Altair使用声明式风格创建图表,因此在使用这个库时,可以非常轻松快速地迭代可视化和实验。
以下是一个很好的Altair Python入门教程:
当想到Plotly时,脑海中浮现的第一个词是交互性!这个数据可视化库是创建需要高度交互性的可视化时的首选库。
Plotly与Jupyter Notebook和Web浏览器高度兼容。这意味着无论创建什么交互式图表,都可以轻松地与团队成员或最终用户共享。
还想指出,Plotly支持从基本图表类型、类似Seaborn的美观和高级图表、3D图表、基于地图的可视化、科学图表等的广泛图表。列表是无穷无尽的!
Plotly的图表还可以支持动画功能。所以,如果想要通过可视化进行故事讲述,这是一个非常有用的库。
以下是一些教程,可以让开始使用Plotly进行数据可视化:
ggplot是R中著名的ggplot2和图形语法语言的Python版本。如果之前在R中使用过它,就会知道使用这个库创建图表有多简单。
个人非常喜欢ggplot的灵活性。可以在构建图表的同时轻松地处理数据——这是一个超级有用的概念!