当前位置: 首页 > 工具软件 > Vega Platform > 使用案例 >

Julia 可视化库:VegaLite.jl 【笔记1 - 安装】

卫念
2023-12-01

什么是 Vega 和 VegaLite

Vega 是一种可视化语法,一种用于创建,保存和共享交互式可视化设计的声明性语言。Vega 采用 JSON 格式描述可视化的视觉外观和交互行为,并使用 HTML5 Canvas 或 SVG 生成基于 Web 的视图。

Vega-Lite 是一种高级可视化语法。它支持简洁的 JSON 语法,用于支持快速生成可视化以支持分析。Vega-Lite 支持交互式多视图图形,可以编译成 Vega

Vega 有着广泛的第三方应用,参见 https://vega.github.io/vega-lite/applications.html

JuliaPythonRElmMarkdown工具
VegaLitePdVegaAltairaltairElm-VegavisdownVega-Editorvega-desktopVoyagervega-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/

安装 VegaLite.jl

安装命令(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 强大的性能结合或许能碰撞出我们意想不到的火花呢。

→ 关于此笔记

参考了以下两个链接:

  1. http://fredo-dedup.github.io/VegaLite.jl/stable/gettingstarted/tutorial.html

  2. https://vega.github.io/vega-lite/docs/

我使用的 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)
 类似资料: