不少Python用户的一大诉求是做出各种酷炫的可视化图表,而这就需要了解清楚工具特色,才好在制作不同类型图表顺利找到适合自己的那一款。今天就来聊聊五个Python数据可视化的库Matplotlib、Pyecharts、Seaborn、Plotly、Bokeh各有哪些优缺点。


Pyecharts

基于Echarts,加入Python富有表达力的语言,pyecharts 诞生了,支持30+种图表。

在pyecharts中制作条形图首先需要导入相关库 。


接着是绘图并不做任何调整,首先创建一个Bar实例,接着添加x轴y轴数据,注意仅接收list格式数据,最后添加标题并设置在notebook中直接展示。总体来说还是比较符合正常的作图逻辑,整体代码量并不多。


默认生成的两系列柱状图如下:


优点:

支持交互式展示与点击

默认生成的样式也较为美观

详细的中文文档与demo,能比较快的上手

文档十分完整,所以代码修改起来并不困难,比如可以修改主题并设置一些标记线、DataZoom,添加小组件等

缺点:

不支持使用pandas中的series数据,需要转换为list才可以使用


Matplotlib

Matplotlib应该是最广泛使用的Python可视化工具,支持的图形种类非常多。使用Matplotlib制作相同效果的图需要先导入相关库,并且并不支持原生中文所以还要设置下中文显示。


接着就是绘图,但是相比较于pyecharts大多是往写好的代码里面添加数据、配置不同,matplotlib大多数需要我们自己写代码,所以

代码量可能稍多一点。最后生成的默认图像如下:


相较Pyecharts,由于Matplotlib的火热,网上关于matplotlib的资料更多更全面。但从美观度上来说,学术风更甚,并且不支持交互式点击查看等操作。代码编写量也相对较多。


Plotly


Plotly也是一款非常强大的Python可视化库,Plotly内置完整的交互能力及编辑工具,支持在线和离线模式,提供稳定的API以便与现有应用集成,既可以在web浏览器中展示数据图表,也可以存入本地拷贝。但是由于官方未提供中文文档,网上关于Plotly的教程也仅限于官方的一些demo,对于一些详细的参数设置并没有太多资料 。


从优点来看,支持交互式操作的,同时是默认添加toolbox小组件,可以更方便的查看,支持30多种图形。但是如果真要熟练使用的话可能需要一点时间用于查找相关资料,因为网上关于Plotly的资料不多,大多是基本使用的简单教程。


Bokeh


Bokeh是一个专门针对Web浏览器的呈现功能的交互式可视化Python库。这是Bokeh与其它可视化库最核心的区别,它可以做出像D3.js简洁漂亮的交互可视化效果,但是使用难度低于D3.js,首先还是导入相关库。相关依赖比上面三个要多出很多,并且Bokeh有自己的数据结构ColumnDataSource,所以要先对数据进行转换,接着就是创建画布、添加数据及设置。最后生成的默认图像如下:


Bokeh一个很明显的特点就是代码量较上面三个工具要多了很多,大多是在数据的处理上,并且和Plotly一样,有关bokeh相关的中文资料也不多,大多是入门型的基本使用于介绍,虽然从官方给出的图来看能作出很多比pyecharts更精美的图,但是查找相关参数的设置上将会耗费一定时间。


Seaborn


从seaborn官网给出的标题就知道,seaborn是为了统计图表设计的,它是一种基于matplotlib的图形可视化库,也就是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图,还是我们的数据,使用Seaborn制作首先需要导入相关库,由于是基于Matplotlib,所以还是需要设置中文。


相比上面四种工具,从代码量上来看是非常简洁的,不过还是要先将数据转换为DataFrame格式,这里没在代码中体现,但依旧是最简短的代码,同时并不支持交互。并且Seaborn和Plotly、bokeh有一个共同的地方就是虽然强大,但是网上有关这三个库的教程、讨论都远少于Pyecharts与Matplotlib,如果是新手的话可能很难快速通过搜索解决你遇到的问题,而需要自己研究别人的代码。


不同工具的应用场景、目标用户都不完全相同,所以在选择工具时需要先思考自己的使用场景,并且还需要评估绘制目标图形的难度哦。