Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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
Javascript D3.js:如何从分组条形图中的JSON读取数据_Javascript_Jquery_Json_Csv_D3.js - Fatal编程技术网

Javascript D3.js:如何从分组条形图中的JSON读取数据

Javascript D3.js:如何从分组条形图中的JSON读取数据,javascript,jquery,json,csv,d3.js,Javascript,Jquery,Json,Csv,D3.js,我正在努力探索D3的每一个方面。在探索过程中,我可以通过JSON(而不是CSV)读取文件 如果你能看到他们在用什么 我想用JSON文件构建相同的图形如何将此CSV文件转换为JSON文件并生成相同的图形?请提供帮助 编辑 我根据自己的需要定制了这个图表。这是我的data.csv State,Orders,Abandoned 0,300,500 1,400,600 2,500,700 3,600,800 4,700,900 5,800,1000 6,900,1100 7,1000,1200 8,70

我正在努力探索D3的每一个方面。在探索过程中,我可以通过JSON(而不是CSV)读取文件

如果你能看到他们在用什么

我想用JSON文件构建相同的图形如何将此CSV文件转换为JSON文件并生成相同的图形?请提供帮助

编辑

我根据自己的需要定制了这个图表。这是我的data.csv

State,Orders,Abandoned
0,300,500
1,400,600
2,500,700
3,600,800
4,700,900
5,800,1000
6,900,1100
7,1000,1200
8,700,900
9,600,700
10,550,750
所以在这里,我硬编码了所有的值,图形以一种很好的格式显示出来

现在,我正在使用JAXB编写一个web服务,以使用JSON格式发送相同的数据

{
"ordernumbertrack": [
{
  "state":1,
  "noOfCancellation": "12",
  "noOfOrder": "30"
},
{
  "state":2,
  "noOfCancellation": "7",
  "noOfOrder": "15"
},
{
  "state":3,
  "noOfCancellation": "15",
  "noOfOrder": "35"
},
{
  "state":4,
  "noOfCancellation": "5",
  "noOfOrder": "18"
},
{
  "state":5,
  "noOfCancellation": "10",
  "noOfOrder": "55"
},
{
  "state":6,
  "noOfCancellation": "8",
  "noOfOrder": "45"
},
{
  "state":7,
  "noOfCancellation": "5",
  "noOfOrder": "20"
},
{
  "state":8,
  "noOfCancellation": "6",
  "noOfOrder": "30"
},
{
  "state":9,
  "noOfCancellation": "4",
  "noOfOrder": "22"
},
{
  "state":10,
  "noOfCancellation": "17",
  "noOfOrder": "40"
},
{
  "state":11,
  "noOfCancellation": "2",
  "noOfOrder": "14"
},
{
  "state":12,
  "noOfCancellation": "5",
  "noOfOrder": "18"
}
]
}

现在如何解析它?

最后,我使用JSON数据创建了分组条形图。我已经编写了将JSON数据发送到D3的web服务

我的JSON与上面我发布的问题相同

我在D3中所做的唯一更改是

d3.json("rooturi/rest/ordernumbertracks", function(error, data) {
  var ageNames = d3.keys(data.ordernumbertrack[0]).filter(function(key) { return key !== "state";
});

data.ordernumbertrack.forEach(function(d) {
  d.ages = ageNames.map(function(name) { return {name: name, value: +d[name]}; });
});

x0.domain(data.ordernumbertrack.map(function(d) { return d.state; }));
x1.domain(ageNames).rangeRoundBands([0, x0.rangeBand()]);
y.domain([0, d3.max(data.ordernumbertrack, function(d) { return d3.max(d.ages, function(d) { return d.value; }); })]);

svg.append("g")
  .attr("class", "x axis")
  .attr("transform", "translate(0," + height + ")")
  .call(xAxis);

svg.append("g")
  .attr("class", "y axis")
  .call(yAxis)
.append("text")
  .attr("transform", "rotate(-90)")
  .attr("y", 6)
  .attr("dy", ".71em")
  .style("text-anchor", "end")
  .text("");

var state = svg.selectAll(".state")
  .data(data.ordernumbertrack)
.enter().append("g")
  .attr("class", "g")
  .attr("transform", function(d) { return "translate(" + x0(d.state) + ",0)"; });

我不能期望它像那样简单:)

以何种形式存储数据并不重要。d3使用数组和对象,而不是JSON或CSV。因此,数据来自何处根本没有区别。无需将CSV文件转换为JSON文件。我正在编写一个web服务来发送JSON数据,然后它将如何工作?假设我正在生成此JSON->{“ordernumbertrack”:[{noOfCancellation:“12”,noOfOrder:“30”},{noOfCancellation:“7”,“noOfOrder:“15”},{“noOfCancellation:“15”,“noOfOrder:“35”}这是另一个问题。你真的只是想将这个CSV示例转换为JSON吗?要么打开文本编辑器手动编写文件,要么使用你最喜欢的脚本语言解析文件,将数据转换为JSON并保存到文件中。不确定你希望得到什么样的答案?我不明白,JSON是什么在评论中发表的评论与你的问题的其余部分有关吗?太棒了!这对我很有帮助
d3.json("rooturi/rest/ordernumbertracks", function(error, data) {
  var ageNames = d3.keys(data.ordernumbertrack[0]).filter(function(key) { return key !== "state";
});

data.ordernumbertrack.forEach(function(d) {
  d.ages = ageNames.map(function(name) { return {name: name, value: +d[name]}; });
});

x0.domain(data.ordernumbertrack.map(function(d) { return d.state; }));
x1.domain(ageNames).rangeRoundBands([0, x0.rangeBand()]);
y.domain([0, d3.max(data.ordernumbertrack, function(d) { return d3.max(d.ages, function(d) { return d.value; }); })]);

svg.append("g")
  .attr("class", "x axis")
  .attr("transform", "translate(0," + height + ")")
  .call(xAxis);

svg.append("g")
  .attr("class", "y axis")
  .call(yAxis)
.append("text")
  .attr("transform", "rotate(-90)")
  .attr("y", 6)
  .attr("dy", ".71em")
  .style("text-anchor", "end")
  .text("");

var state = svg.selectAll(".state")
  .data(data.ordernumbertrack)
.enter().append("g")
  .attr("class", "g")
  .attr("transform", function(d) { return "translate(" + x0(d.state) + ",0)"; });