数据可视化

python+ECharts+d3.js
交互式用 bokeh

可视化技术栈
具备专业素养的数据可视化工程师一般来说需要掌握以下技术栈:

  • 基础数学:三角函数、线性代数、几何算法
  • 图形相关:canvas、svg、webgl、计算图形学、图论
  • 工程算法:基础算法、统计算法、常用的布局算法
  • 数据分析:数据清洗、统计学、数据建模
  • 设计美学:设计原则、美学评判、颜色、交互、认知
  • 可视化基础:可视化编码、可视分析、图形交互
  • 可视化解决方案:图表的正确使用、常见的业务的可视化场景

学术界用得比较多的是 R 语言, ggplot2, Python 可视化库等

ECharts

ECharts 缩写自 Enterprise Charts,企业级图表,开源来自百度数据可视化团队,是一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器,底层依赖另一个也是该团队自主研发的轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。ECharts 是目前国内唯一一个入选 GitHub 全球可视化榜单的开源项目,2w+ star 全球排名第三,社区活跃,覆盖主流前端框架和 8 种编程语言的扩展,目前国内市场占有率处于绝对领先地位。
d56ab916.png

python

  1. matplotlib
    matplotlib 是 Python 数据可视化库的 OG。尽管它已有十多年的历史,但仍然是 Python 社区中使用最广泛的绘图库。它的设计与 MATLAB 非常相似,MATLAB 是 20 世纪 80 年代开发的专有编程语言。

  2. Seaborn
    Seaborn 利用 matplotlib 的强大功能,可以只用几行代码就创建漂亮的图表。关键区别在于 Seaborn 的默认款式和调色板设计更加美观和现代。由于 Seaborn 是在 matplotlib 之上构建的,因此还需要了解 matplotlib 以便调整 Seaborn 的默认值。

  3. Bokeh
    与 ggplot 一样,Bokeh 同样基于 The Grammar of Graphics,但与 ggplot 不同的是,它是原生 Python 的,而不是从 R 语言移植过来的。它的优势在于能够创建交互式的网站图,它可以很容易地输出为 JSON 对象、HTML 或交互式 Web 应用程序。Bokeh 还支持流媒体和实时数据

  4. Plotly
    Plotly 是一个开源,交互式和基于浏览器的 Python 图形库。可以创建能在仪表板或网站中使用的交互式图表(您可以将它们保存为 html 文件或静态图像)Plotly 基于 plotly.js,而 plotly.js 又基于 D3.js,因此它是一个高级图表库,与 Bokeh 一样,Plotly 的强项是制作交互式图

  5. Plotly Express
    它是 Plotly.py 的高级封装,它为复杂的图表提供了一个简单的语法。 受 Seaborn 和 ggplot2 的启发,它专门设计为具有简洁,一致且易于学习的 API

pyecharts

D3.js