我在NVD3中有一个多条形图的图表模板:http://jsfiddle.net/hohenheim/6R7mu/5/
我想要显示以下JSON数据:
[{"date": 1396828800, "impressions": 49145385},
{"date": 1396915200, "impressions": 46704447},
{"date": 1397001600, "impressions": 47181000},
{"date": 1397088000, "impressions": 47337965},
{"date": 1397174400, "impressions": 51129266},
{"date": 1397260800, "impressions": 60547397},
{"date": 1397347200, "impressions": 62217077},
{"date": 1397433600, "impressions": 49145385},
{"date": 1397520000, "impressions": 46704447},
{"date": 1397606400, "impressions": 47181000},
{"date": 1397692800, "impressions": 47337965},
{"date": 1397779200, "impressions": 51129266},
{"date": 1397865600, "impressions": 60547397},
{"date": 1397952000, "impressions": 62217077}]
我正在寻找使用我拥有的JSON数据(如上所示并在小提琴中注释掉),但不知道如何以NVD3图表接受的格式获取它。该图表目前使用的样本数据对我来说毫无意义。
有没有办法将我的数据转换为NVD3可以接受的内容?任何帮助表示赞赏。
答案 0 :(得分:1)
data5似乎有这种格式:
[
{key: x, values: VALUES, vAxis: 1},
{key: x, values: VALUES, vAxis: 1} // and maybe more for more colors
]
和VALUES似乎有这种格式:
[
{x: 0, y: N},
{x: 1, y: N},
{x: 2, y: N} // and more for more on the X axis
]
因此您必须将数据重写为该格式。只有你似乎没有更多来源。你只有一种颜色。什么使{"date": 1396828800, "impressions": 49145385}
成为一个或另一个? date
是X轴吗?
假设您的数据顺序正确,并且它只有1个来源:
data5 = [{key: 'X', values: [], vAxis: 1}]
yourData.forEach(function(el, i) {
data5[0].values.push({x: i, y: el.impressions});
// ^ only 1 source/color
// ^ incremental X, starting at 0
});
您可能需要以某种方式调整x和y范围。 (也许vAxis是一个?)
答案 1 :(得分:0)
我只是偶然发现了他们的github页面,似乎上面的答案是正确的。
https://github.com/novus/nvd3/wiki/Sample-chart-(your-first-nvd3-chart!) 图表的数据格式应该是:
[
{
key: "<Series name>",
color: "<CSS color>",
values: [
{x: 0, y: 10},
{x: 1, y: 20},
{x: 2, y: 30}
....
]
},
{
key: "<Series name>"
...
}
]