Python最常用的可视化库对比。

Matplotlib是最常用的静态可视化的基础库,配置相对复杂。
Seaborn基于Matplotlib可以用最少的代码创建复杂的可视化,配置相对简单,附带一些统计功能。
Plotlypyechats都是基于JS相关库实现,提供更多的互动性,样式也丰富,配置相更复杂。

具体优缺点如下:

Matplotlib

优点

  1. 应用广泛: Matplotlab是Python中应用最广泛的可视化库,有庞大的用户社区 https://matplotlib.org/,相关资源也非常丰富。
  2. 定制化: 提供了非常多的定制选项,可以对颜色、线条样式、标注样式等进行调整。让你可以根据具体需求创建图表。
  3. 出版质量的图表: 可以创建用于出版的图表,可导出为PNG、PDF和SVG等各种格式。方便用于学术论文、演示文稿和其他文件。
  4. 动画: 可以创建动画,对于动态过程可视化非常有用。

缺点

  1. 复杂: 在使用默认样式创建复杂图表时会很耗时,需要大量的代码。难以快速创建图表,代码也不易理解。
  2. 有限的内置可视化类型: 提供的内置可视化类型有限,不能满足所有需求。
  3. 默认样式: 默认样式在视觉上不是那么有吸引力,而且对于不熟悉的人定制化很难做。
  4. 缺少互动: 只能创建静态的可视化,用户不能与图表互动。

Seaborn

优点

  1. 基于Matplotlib: Seaborn是基于Matplotlib开发的,继承了Matplotlib的所有功能。
  2. 额外的可视化类型: 提供了许多额外的可视化类型,如小提琴图、箱形图和对子图。
  3. 易于定制: 提供许多自定义选项,能容易改变颜色和风格,以及自动调整图的大小和长宽比。便于创建更有吸引力的图表。
  4. 统计可视化: 提供一些处理统计数据的功能,比如拟合、线性回归模型。

缺点

  1. 缺少互动: 和Matplotlib一样是静态的,缺少互动性。
  2. 缺少3D支持: 不支持3D图表。
  3. 对地理数据支持有限: 没有内置的地理数据可视化。
  4. 实时数据支持有限: 不是为实时数据可视化设计的,对处理流数据的人来说是个限制。

Plotly

优点

  1. 交互式: 可以创建在浏览器中查看的互动可视化图表,方便分享并进一步探索数据。
  2. 丰富的可视化类型: 提供多种可视化类型,包括线图、散点图、柱状图、热力图等,支持缩放、平移等互动功能,还有3D和地图功能。
  3. 自定义: 提供了许多自定义选项,方便调整颜色、线条样式和标记样式。
  4. 协作: 允许多个用户实时协作。

缺点

  1. 离线支持有限: Plotly的可视化通常在浏览器中查看,可能使其在离线环境下变得困难。
  2. 大数据支持有限: 不是为处理大数据设计的,对大数据处理支持有限。
  3. 依赖浏览器环境: 依赖浏览器环境,分享依赖互联网环境。

pyechats

优点

  1. 交互性: 可以创建互动性的图表,在浏览器或者jupyter notebook中都可以。
  2. 丰富的图表类型: 拥有非常丰富的图表类型,包含一些不常见的图表,如极坐标系、树形图等。
  3. 定制化: 可对图形、颜色、标注等内容进行自定义。
  4. 3D和地图支持: 提供了一些地图和3D图表的支持。

缺点

  1. 数据接入复杂: 不能直接对接pandas等数据处理库。
  2. 代码和自定义配置复杂: 因为基于Echarts开发,底层是javascript,代码和配置都不太python风格。
  3. 依赖浏览器及相关库: python中导出图片需要安装snapshot-selenium 或者 snapshot-phantomjs,比较依赖浏览器环境。

参考资料