在 Vega Lite 中使用数据作为数组而不是表

2024-03-02

如何在 VegaLite 中使用数组数据?

我想将数据用作数组

dates   = [1, 2, 3]
prices1 = [1, 2, 1]
prices2 = [1.5, 1, 2]

而不是 VegaLite 中传统使用的表数据

[
  { "date": 1, "price": 1, "symbol": 1 },
  { "date": 2, "price": 2, "symbol": 1 },
  { "date": 3, "price": 1, "symbol": 1 },

  { "date": 1, "price": 1.5, "symbol": 2 },
  { "date": 2, "price": 1,   "symbol": 2 },
  { "date": 3, "price": 2,   "symbol": 2 }
]

完整示例操场 https://vega.github.io/editor/#/url/vega-lite/AQ4bwKFUCIBIDOBjAFgUwLYEMYC5gwoAuRADgrgPSUBuaA5lgHT0CWRKArgEZOsD2lZOmy0GWALQAbdmloAWJgCsE-AHYwANFGgEAJmmQAnVqSICN+GAGUi-JAGtgpE0kPB+AM2ABWYABU0VGAAYX4MUiw1Vnd+OiMA1gw0Ji0daBg9LCIcfEhdWBosKU5DPGAAbXSC8H1stHKARk0CF1Y3JpaYBABPDG5+KSbgAF9tGtAwOqIG-AAmLraO+a7e-sHhseqCqcz68oBmRddZ4GaCNYGh-EbR7W3dXayZztaTpqYfVb6r8rm7h7QJ77FZvdqnc4gbo-DbzAETEDAl74I5g5bABawS6wjGjQHAAC6Dy2BRg2CMDnK+RqMCIPVIpxgMjUDXGNNI-FYaiIVPxUM8rCkUjQenKnmKCDQbImMAFQvKMAA7ihZDB8SNidLYGg1Eh+HoufReTKAB5U2UxKSiqzPVkEOkMhUAR04UXMOXMdBgJJpPXNArQVoVSzttPpjJdbvY2VYXp9pL1Un4Rn9lutFxhQy6DsZanCXOK3uJ1Q1ECAA

{
  "$schema": "https://vega.github.io/schema/vega-lite/v4.json",
  "description": "Stock prices of 5 Tech Companies over Time.",
  "data": {
    "values": [
      { "date": 1, "price": 1, "symbol": 1 },
      { "date": 2, "price": 2, "symbol": 1 },
      { "date": 3, "price": 1, "symbol": 1 },

      { "date": 1, "price": 1.5, "symbol": 2 },
      { "date": 2, "price": 1,   "symbol": 2 },
      { "date": 3, "price": 2,   "symbol": 2 }
    ]
  },
  "mark": {
    "type": "line",
    "point": {
      "filled": false,
      "fill": "white"
    }
  },
  "encoding": {
    "x": {"field": "date", "type": "quantitative"},
    "y": {"field": "price", "type": "quantitative"},
    "color": {"field": "symbol", "type": "nominal"}
  }
}

您可以使用一系列数据转换来实现此目的:

  1. A 展平变换 https://vega.github.io/vega-lite/docs/flatten.html将数据数组转换为普通表条目
  2. A 折叠变换 https://vega.github.io/vega-lite/docs/fold.html将两个价格列转换为带有一列标签的单个价格列
  3. A 计算变换 https://vega.github.io/vega-lite/docs/calculate.html使用适当的织女星表达 https://vega.github.io/vega/docs/expressions/从价格标签中提取号码。

结果是这样的:

{
  "$schema": "https://vega.github.io/schema/vega-lite/v4.json",
  "description": "Stock prices of 5 Tech Companies over Time.",
  "data": {
    "values": [
      {"date": [1, 2, 3], "prices1": [1, 2, 1], "prices2": [1.5, 1, 2]}
    ]
  },
  "transform": [
    {"flatten": ["date", "prices1", "prices2"]},
    {"fold": ["prices1", "prices2"], "as": ["symbol", "price"]},
    {"calculate": "slice(datum.symbol, -1)", "as": "symbol"}
  ],
  "mark": {"type": "line", "point": {"filled": false, "fill": "white"}},
  "encoding": {
    "x": {"field": "date", "type": "quantitative"},
    "y": {"field": "price", "type": "quantitative"},
    "color": {"field": "symbol", "type": "nominal"}
  }
}

要探索转换正在执行的操作,在以下位置打开图表可能会很有用:维加编辑器 https://vega.github.io/editor/#/url/vega-lite/N4KABGBEAkDODGALApgWwIaQFxUQFzwAdYsB6UgN2QHN0A6agSz0QFcAjOxge1IRQyUa6ALQAbZskoAWOgCtY3AHaQANOCgATZAgBOjQnh4qckAMp5u8ANZhC++DrDcAZmACsYACrIkYAMLcqIToSoxO3FS63oyoyHRqGpCa6HiYOKAQEJAU6GKsOthgANoaWWDAyanIRcUAjKpgAEyNAMwAuo2Q9oyOsHW1Dc2NdZ1QPX1Ng3TuI41N7QC+ZWDtGovq2Xi6obAu3LqotSuVLmKpeMgmJVWXauMOOgNdEzpTS5tZp9ximrXdj369wBvTekDGkHQsH+sAAnqh2D9ga9wRsTpB4Hl4KxzndTLAJI4ABQpPCsVB0OEIn6NER1ACUwKhRUgVMRYkgywgnSSGF01iKlTwsMINVMEiUNRe3EYSjwgsgLkYYjEyD+OBceVgyC6SpVLIA7ohJJy0dkrvBuJpZdRBStIAAPBVK5C-FmkqVQYWilkAR1YoSMaSMVE5n2ysOd4TdphRXW9Yqg-sDzFSjFDZqyGJ+ByjrvVUDZSPjIsTkCUQVleU56xAiyAA并使用数据查看器选项卡来探索每个转换如何修改基础数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Vega Lite 中使用数据作为数组而不是表 的相关文章

  • 如何使用 Vega-Lite 在轴上绘制多个变量?

    按照 Vega Lite 的西雅图天气教程 很容易绘制出每月的平均最低气温 schema https vega github io schema vega lite v2 json data url https vega github io
  • 尽管已安装模块,导入语句仍会使角度应用程序崩溃

    可能是什么原因import如果语法正确并且库已经安装 语句会导致错误 附图 可能是下面两个主要设置文件中的某些内容 包 json tsconfig json 我们继承了一个大型的 Angular 应用程序 并在其中安装了vega vega
  • 将图例添加到 Altair 图表中的折线图和条形图,而不使用尺寸/颜色

    我正在使用 Altair 创建一个包含多条线的图表 每条线都有多个波段 代表不同的 CI 并且我正在努力了解如何添加图例 例如 在这个相当简单的示例中 import altair as alt import pandas as pd df
  • 使用 Vega Lite 显示已经聚合的数据

    我正在尝试显示随时间变化的总和的堆积条形图 数据看起来像这样 date 12345 sumA 100 sumB 150 我将 x 轴编码为 日期 字段 我需要将日期 12345 的条形图堆叠起来 其中一部分高 100 另一部分高 以另一种颜
  • Altair 中的平行坐标

    我想做一个具有多个 y 轴的平行坐标图 我已经找到了如何在 Vega Lite 中做到这一点here但我还没有找到使用 Altair 的方法 只有一个非常简单的例子其中所有 y 轴都相同 有什么办法吗这个情节在牵牛星 请注意 这种图表不是
  • 基于选择动态改变编码中的 Y 轴字段 Vega-Lite

    如何根据选择动态更改为 y 轴编码的数据字段 我正在尝试构建一个可视化来显示一天 24 小时内的事件计数数据 并且我希望用户能够选择不同的时区 例如 EST CST MST 或 PST 为此 我构建了一个单一选择 在其中指定上面括号中列出的
  • 我们可以将事件侦听器添加到“Vega-Lite”规范吗?

    我是 Vega 和 Vega Lite 的新手 我正在使用 Vega Lite 创建一个简单的条形图 但我无法添加任何事件侦听器 例如 徘徊 我想将鼠标悬停在一个栏上并更改该栏的颜色 如果您正在使用Vega嵌入 https github c
  • Altair 结合多个数据集

    我最近才知道Vega Vega Lite and Altair并将其视为最佳 Python 绘图工具的真正竞争者 我目前正在努力解决的问题是将两个数据帧中的信息绘制到共享一个或两个轴的同一个图表中 我尝试过类似的事情 plot1 alt C
  • Altair 等值线地图,基于折线图选择的颜色突出显示

    我正在绘制由字段着色的分区统计图Passenger 0 以及显示演变的折线图Passenger 0 一整天由zone 我想选择一行 zone 在线图中 并在地图中突出显示它 反之亦然 在地图中选择一个区域 并在折线图中突出显示它 目前 我可
  • Altair - 无法获取折线图中某一层的工具提示

    当我绘制由两组线组成的分层图表时 某一层中的工具提示不显示 这也发生在 VL 编辑器中 任何有关为什么会发生这种情况的见解都将不胜感激 这是一个可重现的示例来演示该问题 实际上我在第一层有更多行 牛郎星版本 4 0 0 df pd Data
  • Vega-lite:轴中标签的换行或自动换行

    我试图将 x 轴的标签包裹在下一行 因为标签长度很长 那么有没有什么办法可以实现呢 我尝试使用calculate and labelExpr通过破坏标签字符串 然后使用 n 连接它们 但这似乎不起作用 是否有任何其他配置可以帮助我实现此用例
  • Altair Ridgeline 不会创建具有名义组的绘图

    我尝试在 Altair 中创建山脊线图 假设我的数据框由 str 和 float 列组成 a object b float64 dtype object 具有像这样的值 a b 0 25 2303 0 1 29 2676 0 2 18 29
  • 在 Vega Lite 中使用数据作为数组而不是表

    如何在 VegaLite 中使用数组数据 我想将数据用作数组 dates 1 2 3 prices1 1 2 1 prices2 1 5 1 2 而不是 VegaLite 中传统使用的表数据 date 1 price 1 symbol 1
  • Vega-Lite:数据中的描边颜色值?

    在 Vega 中 可以从数据中获取颜色值 如下所示 维加的例子 https vega github io editor url vega N4KABGBEAkDODGALApgWwIaQFxUQFzwAdYsB6UgN2QHN0A6agSz
  • Vega-Lite 中的平行坐标?

    是否可以创建平行坐标维加精简版 https vega github io vega lite 我正在寻找一个简单但功能强大的 JavaScript 绘图库 并且需要支持平行坐标 I have googled https www google
  • React-Vega 和 React-Vega 工具提示

    我在用着react vega lite 官方给出的例子 https vega github io vega lite https vega github io vega lite https vega github io react veg
  • 如何从 Vega Lite 图表中删除轴线

    我想从下面的 vega lite 图表中删除 隐藏轴线 我尝试将颜色更改为空 如下所示 或其他颜色 但这不起作用 https vega github io editor gist fc799bc9f7a8f28b8f1f2ec84673e9
  • Altair 通过绑定范围滑块对日期时间值进行选择和转换过滤器似乎不适用于相等条件或选择器本身

    我想将范围滑块与日期时间值绑定 以仅过滤图表中特定日期的数据 使用stocks数据 我想要做的是让 x 轴显示公司 y 轴显示用户通过范围滑块选择的特定日期的股票价格 根据来自的输入这个答案 https stackoverflow com
  • 在 vega-lite 中实现自定义点击处理程序的正确方法是什么

    我似乎无法通过阅读文档来弄清楚这一点 有没有办法实现onClick我的任何标记的事件处理程序 由于 Vega Lite 尚不支持信号 您可以修补生成的 Vega 您可以将信号添加到已编译的 Vega 规范中 然后通过 Vega 视图 API
  • vega-lite:单个图表中的多个标记

    我目前正在评估应该使用哪种类型的 js 图表引擎来制作开箱即用的图表 而 vega lite 因其非常简单和灵活而脱颖而出 但是 我想知道是否可以在单个图表中包含多种类型的标记 例如 我可能有一个很长的每月时间序列 我可能会考虑使用具有逐月

随机推荐

  • 如何从 Rails 内部重新启动 Rails?

    好的 所以我想在 Rails 中创建一个操作来重新启动自身 我做了一些搜索并发现 http snippets dzone com posts show 5002 http snippets dzone com posts show 5002
  • 无法从 Metro 风格应用程序获取可用磁盘空间

    我正在编写一个 Metro 风格的应用程序 想要确定托管用户音乐库的驱动器的可用存储容量 我想在磁盘上没有剩余空间或剩余空间很少的情况下禁用某些应用程序功能 我使用 P Invoke 调用 GetDiskFreeSpaceExW 并收到错误
  • 如何计算(A*B)%C? [复制]

    这个问题在这里已经有答案了 有人可以帮我如何计算吗 A B C where 1 lt A B C lt 10 18在C 中 没有big num 只是一种数学方法 从我的脑海中浮现出来 未经广泛测试 typedef unsigned long
  • 应如何聚合公开子实体的信息?

    从这个问题跟进实体是否应该有方法 如果有 如何防止它们在聚合之外被调用 https stackoverflow com questions 51907447 should entity have methods and if so how
  • 从 GNU Octave 中的矩阵中删除一列

    在 GNU Octave 中 我希望能够从矩阵中删除特定的列 为了一般性 我还希望能够从矩阵中删除特定行 假设我有这个 mymatrix eye 5 mymatrix Diagonal Matrix 1 0 0 0 0 0 1 0 0 0
  • 合并 Pig 中的两行

    我想为下面的查询编写一个猪脚本 输入是 ABC DEF GHI JKL MNO PQR STU VWX 输出应该是 ABC DEF GHI JKL MNO PQR STU VWX 有人可以帮我吗 使用土猪很难解决这个问题 一种选择是下载da
  • (量角器)检查单击时是否禁用输入?

    我有两个输入字段 用户名和密码以及一个微调按钮 当我单击此微调按钮时 这两个输入字段将被禁用 并且我将被重定向到另一个页面 我正在编写一个端到端测试来检查这些输入字段是否被禁用 element by model username sendK
  • 如何按不同时区的年月日进行聚合

    我有一个 MongoDB 它以 UTC 格式存储日期对象 好吧 我想按不同时区 CET 的年 月 日执行聚合 这样做对于 UTC 来说效果很好 BasicDBObject group id new BasicDBObject id new
  • 为什么 Big Query 远程函数无法激活超过 60 个云函数实例?

    我已经开始使用远程功能 https cloud google com bigquery docs reference standard sql remote functions https cloud google com bigquery
  • 有没有办法在 iOS 上自动更新(或只是清除缓存)PWA?

    我一直在 iOS 上努力尝试一些在 Android 上可以轻松运行的东西 让我的 PWA 在有新版本时自动更新 我根本不确定这在 iOS 上是否可行 我使用 vue js 和 Quasar 来构建我的应用程序 一切都可以在 Android
  • 检查用户是否处于特定半径(Flutter)

    我想使用地理位置检查用户是否在他 她的房子里 该应用程序将在前台运行 并且不会显示地图 用户的房屋纬度和经度将存储在 Firestore 中 当用户打开应用程序时 我想检查他 她是否在他的房子里 由于房屋大小可能会有所不同 我会考虑以几米为
  • Rails:如何从服务或队列中监听/拉取?

    大多数 Rails 应用程序的工作方式都是等待来自客户端的请求 然后发挥其作用 但是 如果我想将 Rails 应用程序用作微服务架构的一部分 例如 并进行一些异步通信 服务 A 将事件发送到 Kafka 或 RabbitMQ 队列 而服务
  • 重新加载环境变量而不重新启动Excel?

    我使用该功能Environ 从正在运行的 Excel 实例获取环境变量 当系统中定义了一个新变量时 Excel 在不重新启动之前不会知道它 我的问题是 有什么方法可以获取环境变量的新值而不需要重新启动Excel 测试用例是 Windows搜
  • 使用后删除临时文件

    我需要在 Windows Forms NET 3 5 应用程序中使用一些临时文件 这些文件在外部应用程序中打开 当然该应用程序的运行时间可能比我自己的程序更长 是否有任何最佳实践来确保随时清理这些临时文件 以避免用户的硬盘充满不再需要的 垃
  • array.sort() 在 IE 11 中无法使用compareFunction [重复]

    这个问题在这里已经有答案了 我正在对以下数组进行排序JavaScript 数组 sort 方法 http www w3schools com jsref jsref sort asp 当我使用compareFunction参数 Intern
  • 使用什么工具来比较和减少css样式表

    我有一个页面 page1 html 引用了一个css文件 style1 css 一切都很好 我需要 Page1 html 来另外引用 Style2 css 然而 当我添加引用时 Page1 html 上的一些内容出现了问题 我如何确定导致此
  • 带有networkx的超图

    有人熟悉networkx吗 我尝试获取一个超图 我想将超边设置为列表中的其他彩色节点 大小取决于它们的值 我想将节点设置为其他列表之外 networkx 网站上的文档和示例确实很少 但我确信这是可能的 我开始于这个例子 https netw
  • 如何从 SQL Server 的列中删除不间断空格?

    我正在尝试删除不间断空格 CHAR 160 来自我表中的一个字段 我尝试过使用类似的函数RTRIM 摆脱它 但价值仍然存在 我需要做什么才能从列中删除不间断空格 尝试使用REPLACE http msdn microsoft com en
  • Eonasdan/bootstrap-datetimepicker 日期时间选择器通过外部 javascript 调用重置

    我有用Eonasdan bootstrap datetimepicker 版本 4 17 47 现在解释一下当我从文本框打开 bootstrap datetimepicker 并选择日期时的情况 之后我有一个清除按钮 onclick 我清除
  • 在 Vega Lite 中使用数据作为数组而不是表

    如何在 VegaLite 中使用数组数据 我想将数据用作数组 dates 1 2 3 prices1 1 2 1 prices2 1 5 1 2 而不是 VegaLite 中传统使用的表数据 date 1 price 1 symbol 1