Python最常用的可视化库对比。
Matplotlib是最常用的静态可视化的基础库,配置相对复杂。
Seaborn基于Matplotlib可以用最少的代码创建复杂的可视化,配置相对简单,附带一些统计功能。
Plotly和pyechats都是基于JS相关库实现,提供更多的互动性,样式也丰富,配置相更复杂。
具体优缺点如下:
Matplotlib
优点
- 应用广泛: Matplotlab是Python中应用最广泛的可视化库,有庞大的用户社区 https://matplotlib.org/,相关资源也非常丰富。
- 定制化: 提供了非常多的定制选项,可以对颜色、线条样式、标注样式等进行调整。让你可以根据具体需求创建图表。
- 出版质量的图表: 可以创建用于出版的图表,可导出为PNG、PDF和SVG等各种格式。方便用于学术论文、演示文稿和其他文件。
- 动画: 可以创建动画,对于动态过程可视化非常有用。
缺点
- 复杂: 在使用默认样式创建复杂图表时会很耗时,需要大量的代码。难以快速创建图表,代码也不易理解。
- 有限的内置可视化类型: 提供的内置可视化类型有限,不能满足所有需求。
- 默认样式: 默认样式在视觉上不是那么有吸引力,而且对于不熟悉的人定制化很难做。
- 缺少互动: 只能创建静态的可视化,用户不能与图表互动。
Seaborn
优点
- 基于Matplotlib: Seaborn是基于Matplotlib开发的,继承了Matplotlib的所有功能。
- 额外的可视化类型: 提供了许多额外的可视化类型,如小提琴图、箱形图和对子图。
- 易于定制: 提供许多自定义选项,能容易改变颜色和风格,以及自动调整图的大小和长宽比。便于创建更有吸引力的图表。
- 统计可视化: 提供一些处理统计数据的功能,比如拟合、线性回归模型。
缺点
- 缺少互动: 和Matplotlib一样是静态的,缺少互动性。
- 缺少3D支持: 不支持3D图表。
- 对地理数据支持有限: 没有内置的地理数据可视化。
- 实时数据支持有限: 不是为实时数据可视化设计的,对处理流数据的人来说是个限制。
Plotly
优点
- 交互式: 可以创建在浏览器中查看的互动可视化图表,方便分享并进一步探索数据。
- 丰富的可视化类型: 提供多种可视化类型,包括线图、散点图、柱状图、热力图等,支持缩放、平移等互动功能,还有3D和地图功能。
- 自定义: 提供了许多自定义选项,方便调整颜色、线条样式和标记样式。
- 协作: 允许多个用户实时协作。
缺点
- 离线支持有限: Plotly的可视化通常在浏览器中查看,可能使其在离线环境下变得困难。
- 大数据支持有限: 不是为处理大数据设计的,对大数据处理支持有限。
- 依赖浏览器环境: 依赖浏览器环境,分享依赖互联网环境。
pyechats
优点
- 交互性: 可以创建互动性的图表,在浏览器或者jupyter notebook中都可以。
- 丰富的图表类型: 拥有非常丰富的图表类型,包含一些不常见的图表,如极坐标系、树形图等。
- 定制化: 可对图形、颜色、标注等内容进行自定义。
- 3D和地图支持: 提供了一些地图和3D图表的支持。
缺点
- 数据接入复杂: 不能直接对接pandas等数据处理库。
- 代码和自定义配置复杂: 因为基于Echarts开发,底层是javascript,代码和配置都不太python风格。
- 依赖浏览器及相关库: python中导出图片需要安装snapshot-selenium 或者 snapshot-phantomjs,比较依赖浏览器环境。
参考资料
- https://medium.com/towards-data-science/a-step-by-step-guide-for-creating-advanced-python-data-visualizations-with-seaborn-matplotlib-1579d6a1a7d0
- https://medium.com/mlearning-ai/comparing-python-libraries-for-visualization-b2eb6c862542#:~:text=Matplotlib is a great choice,choice for creating interactive visualizations.
- https://pyecharts.org/#/