我正在尝试在Vincent中创建一个数据数组,其格式类似于Vega 教程中的格式。
...
"data": [
{
"name": "table",
"values": [
{"x":"A", "y":28}, {"x":"B", "y":55}, {"x":"C", "y":43},
{"x":"D", "y":91}, {"x":"E", "y":81}, {"x":"F", "y":53},
{"x":"G", "y":19}, {"x":"H", "y":87}, {"x":"I", "y":52}
]
}
],
...
但是,我还没有弄清楚该怎么做。使用 Data.from_iter() 和 Data.from_mult_iter() 要求数据具有明确的索引和列名。我认为 data.keypairs() 看起来很有希望,但这也产生了截然不同的格式。
到目前为止,这里有一些尝试:
In [1]: coor = {'x': ['A', 'B', 'C'], 'y': [28, 55, 43]}
In [2]: data = Data.keypairs(coor)
In [3]: print data.to_json()
{
"name": "table",
"values": [
{ "x": "x", "y": ["A","B","C"]},
{ "x": "y", "y": [28,55,43]}
]
}
In [4]: data = Data.from_iter(coor)
In [5]: print data.to_json()
{
"name": "table",
"values": [
{"col": "data", "idx": "x", "val": ["A", "B", "C"]},
{"col": "data", "idx": "y", "val": [28, 55, 43]}
]
}
In [5]: coor = [{'x':'A', 'y':28}, {'x':'B', 'y':55}, {'x':'C', 'y':43}]
In [6]: data = Data.keypairs(coor)
In [7]: print data.to_json()
{
"name": "table",
"values": [
{"x": 0, "y": {"x": "A", "y": 28}},
{"x": 1, "y": {"x": "B", "y": 55}},
{"x": 2, "y": {"x": "C", "y": 43}}
]
}
In [8]: data = Data.from_iter(coor)
In [9]: print data.to_json()
{
"name": "table",
"values": [
{"col": "data", "idx": 0, "val": {"x": "A", "y": 28}},
{"col": "data", "idx": 1, "val": {"x": "B", "y": 55}},
{"col": "data", "idx": 2, "val": {"x": "C", "y": 43}}
]
}
有谁知道如何使用文森特生成上述格式?如果我想要具有三个键/值对的对象,例如:
...
"data": [
{
"name": "table",
"values": [
{"x":"A", "y":28, "z":34}, {"x":"B", "y":55, "z":21}, ...
]
}
],
...
非常感谢你的帮助!