Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vega 如何在内联数据中使用基元值?_Vega_Vega Lite - Fatal编程技术网

Vega 如何在内联数据中使用基元值?

Vega 如何在内联数据中使用基元值?,vega,vega-lite,Vega,Vega Lite,一般来说,vega lite中的内联数据应具有如下形式: "data": { "values": [ {"first column": "A", "second column": 28, "third column": 32}, {"first column": "B", "second column": 55, "third column": 94}, {"first column": "C", "second column": 43, "third colum

一般来说,vega lite中的内联数据应具有如下形式:

"data": {
  "values": [
    {"first column": "A", "second column": 28, "third column": 32}, 
    {"first column": "B", "second column": 55, "third column": 94}, 
    {"first column": "C", "second column": 43, "third column": 21},
    ...
  ]
}
我试图找出是否可以通过“转置”数据来更简洁地指定内联数据。这将避免字段名称的过度重复,即:

"data": {
  "values": [
    {"first column": ["A", "B", "C"]}, 
    {"second column": [28, 55, 43]}, 
    {"third column": [32, 94, 21]},
    ...
  ]
}
对于
字段,模糊地提到:

这可以是对象数组、基元值或字符串。基元值数组作为具有数据属性的对象摄取

因此,我所能做的就是,例如,
“值”:[“A”、“B”、“C”]

如何使用这些原始的内联数据?数据只有一个字段
data
,这不足以在x+y轴上绘图。是否还有一个自动生成的
id
字段可用于轴编码?或者,是否可以将多个原语内联数据集组合成具有多个(命名)字段的数据集


标准织女星是否可以使用压缩数据变体?

您可以使用压缩数据,但必须首先对其进行扩展。vega lite的配置信息只是javascript,因此您可以使用如下函数:

  expand_data = compressed => {
  const expanded = [];
  const keys = compressed.map( r => Object.keys(r)[0]);
  const keys_count = compressed.length; 
  const row_count = compressed[0][keys[0]].length;
  for (let i = 0; i< row_count; i++) {
    const new_row = {};
    for (let j = 0; j < keys_count; j++) {
      new_row[keys[j]] = compressed[j][keys[j]][i]
    }
    expanded.push(new_row);
  }
  return expanded;
}
。。。 价值:[苹果、橘子、甜瓜]

苹果、橘子和甜瓜也可以附加其他属性或功能


我已经在笔记本中添加了一个primatives图表。

您可以使用压缩的数据,但必须先将其展开。vega lite的配置信息只是javascript,因此您可以使用如下函数:

  expand_data = compressed => {
  const expanded = [];
  const keys = compressed.map( r => Object.keys(r)[0]);
  const keys_count = compressed.length; 
  const row_count = compressed[0][keys[0]].length;
  for (let i = 0; i< row_count; i++) {
    const new_row = {};
    for (let j = 0; j < keys_count; j++) {
      new_row[keys[j]] = compressed[j][keys[j]][i]
    }
    expanded.push(new_row);
  }
  return expanded;
}
。。。 价值:[苹果、橘子、甜瓜]

苹果、橘子和甜瓜也可以附加其他属性或功能

我已经在笔记本中添加了一个primatives图表。

一旦合并,您可以使用展平变换进行此操作。有关Vega等效物,请参见

输入

输出

[
  {"key": "alpha", "foo": 1, "bar": "A"},
  {"key": "alpha", "foo": 2, "bar": "B"},
  {"key": "beta",  "foo": 3, "bar": "C"},
  {"key": "beta",  "foo": 4, "bar": "D"},
  {"key": "beta",  "foo": 5, "bar": null}
]
合并后,可以使用展平变换进行此操作。有关Vega等效物,请参见

输入

输出

[
  {"key": "alpha", "foo": 1, "bar": "A"},
  {"key": "alpha", "foo": 2, "bar": "B"},
  {"key": "beta",  "foo": 3, "bar": "C"},
  {"key": "beta",  "foo": 4, "bar": "D"},
  {"key": "beta",  "foo": 5, "bar": null}
]

我不知道你所说的只有一个字段数据的原语内联数据是什么意思。我已向链接的笔记本添加了一个变量。如果您有一个[{data:12},{data:27},{data:13}]数组,这将适合您。您甚至可以使用[12,27,13]这样的数组来实现这一点,只要您首先将其映射到对象中,例如:arry.map(r=>{data:r}),我不确定您所说的只有一个字段数据的原语内联数据是什么意思。我已向链接的笔记本添加了一个变量。如果您有一个[{data:12},{data:27},{data:13}]数组,这将适合您。您甚至可以使用[12,27,13]这样的数组来实现这一点,只要您首先将它映射到对象中,例如:arry.map(r=>{data:r})