Vega
是一种可视化语法,一种用于创建,保存和共享交互式可视化设计的声明性语言。Vega
采用 JSON
格式描述可视化的视觉外观和交互行为,并使用 HTML5 Canvas 或 SVG 生成基于 Web 的视图。
Vega-Lite
是一种高级可视化语法。它支持简洁的 JSON
语法,用于支持快速生成可视化以支持分析。Vega-Lite
支持交互式多视图图形,可以编译成 Vega
。
Vega
有着广泛的第三方应用,参见 https://vega.github.io/vega-lite/applications.html
Julia | Python | R | Elm | Markdown | 工具 |
---|---|---|---|---|---|
VegaLite | PdVega、Altair | altair | Elm-Vega | visdown | Vega-Editor、vega-desktop、 Voyager、 vega-embed |
VegaLite.jl 文档绘图例子: http://fredo-dedup.github.io/VegaLite.jl/stable/index.html
VegaLite 官方 Example Galary: https://vega.github.io/vega-lite/examples/
VegaLite API 文档( JSON 格式): https://vega.github.io/vega-lite/docs/
安装命令(Julia 0.6 版本):
Pkg.add("VegaLite")
Pkg.add("IJulia")
Pkg.add("VegaDatasets")
参见: http://fredo-dedup.github.io/VegaLite.jl/stable/gettingstarted/installation.html
在 REPL 界面运行绘图命令默认使用浏览器窗口展示绘图,可安装 ElectronDisplay.jl 以使用窗口展示绘图。
Pkg.add("ElectronDisplay")
VegaLite.jl
在 Jupyter Notebook 中可展示绘图,可与 Jupyter Lab 或 nteract 进行交互式绘图。
支持 VS Code 和 Juno/Atom 插件。
首先申明,本人 Julia 萌新一枚,非计算机专业,下面的笔记中使用的术语不够专业还请见谅 ~~
写这些笔记算是我开启 Julia 之旅的第一站吧。(顺便为 Julia 1.0 正式发布由衷地感到高兴 V.V)
其实 VegaLite.jl
这个库还在完善当中,并不是很成熟。而且学习到深入一点的时候,基本就是 JSON
写法 + 一些 Julia
语言特性了。
和 python 的 Matplotlib
库比起来, Matplotlib
能够精细地控制绘图的每一处细节,却在可视化表达上与数据的联系有所割裂,Pandas
封装了一部分绘图功能,把 dataframe 数据处理和 pyplot 连接起来,在可视化方面功能有限。而 VegaLite.jl
在数据可视化方面仿佛是开箱即用,方便灵活。
Json
格式在数据传输上独具优势,但是复杂的嵌套结构挺折磨人的… 试想在结构复杂一点的可视化代码里面穿插着写 () 、[] 、{} 不是一件愉快的事情啊。
可是无论怎样,世界上没有绝对完美之事物。
VegaLite.jl
便利的可视化与 Julia 强大的性能结合或许能碰撞出我们意想不到的火花呢。
→ 关于此笔记
参考了以下两个链接:
我使用的 Julia 版本为 0.6 (目前尚未在 0.7 和 1.0 版本上测试过),编辑器为 Jupyter Notebook
,所有代码在 JuliaBox 平台上运行通过。
运行环境如下 ↓
JULIA_HOME: /opt/julia-0.6.2/bin
Julia Version 0.6.2
Commit d386e40c17 (2017-12-13 18:08 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz
WORD_SIZE: 64
BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell)
LAPACK: libopenblas64_
LIBM: libopenlibm
LLVM: libLLVM-3.9.1 (ORCJIT, haswell)