如何进行多个api调用以在d3图表中显示单个数据

时间:2015-05-26 23:29:42

标签: javascript d3.js

我正在尝试使用d3在图表中显示数据,方法是使用相同的数据但不同的日期进行2次单独的api调用。

第一次api电话:

Building target: First
Invoking: MacOS X C Linker
gcc -static -L"/Users/nate/Eclipse Workspaces/cdtWorkspace/Staticlib/Debug" -L"/Users/nate/Eclipse Workspaces/cdtWorkspace/Staticlib/Release" -o "First"  ./src/first.o   
ld: library not found for -lcrt0.o

我正在尝试拨打电话并按如下方式显示图表:

粗线表示一组 var data1 = { 'name' : 'test', 'id' : 7948237982937, 'startDate': startDate1, 'endDate': endDate1, 'tz': getTimezoneOffset() }; var data2: { 'name' : 'test', 'id' : 7948237982937, 'startDate': startDate2, 'endDate': endDate2, 'tz': getTimezoneOffset() }; ,虚线表示第二组start and end dates (startDate1 and endDate1)

我试过这个:

start and ends dates(startDate2 and endDate2)

然而,这对我来说根本不起作用......它只在图表中显示一个数据信息。

EDIT ::::: 这是我尝试使用下面给出的ex:我有休息调用以这种格式返回数据:所有数据都是相似的,除了日期..

draw: function(){
   getData();
   getData2();
},
getData: function() {
    var self = this;
    self.showLoading();
    $.get('url', data1, function(response) {
       console.log("success" + response);
    });
},
 getData2: function() {
    var self = this;
    self.showLoading();
    $.get('url', data2, function(response) {
       console.log("success" + response);
    });
}

现在,当我尝试访问data: //returns Object {sale: "202", year: "2000", date: "12"} data2: //returns Object {sale: "202", year: "2000", date: "24"} 时,它返回null。

http://jsfiddle.net/nv4x78t6/

我看到没有显示数据......

1 个答案:

答案 0 :(得分:1)

您有两个数据集和两行。这意味着您希望使用data1绘制一条路径,并使用data2绘制另一条路径。

这是一个例子。最后,他只是将第二个svg:path添加到图表中并在其上绘制数据。

http://code.tutsplus.com/tutorials/building-a-multi-line-chart-using-d3js--cms-22935

在您的情况下,您可能希望预先插入两个路径,并向其添加类,如“seriesOneLine”和“seriesTwoLine”。然后总是将“getData”响应绘制到“seriesOneLine”中,并始终将“getData2”绘制为“seriesTwoLine”。

如果没有看到一些渲染代码,我真的不能更具体。

修改(问题更新后)

您的小提琴数据是两个系列,每个系列有一个数据点。您正在尝试使用单个点绘制折线图。我将您的数据更改为:

                var data = [{
                    "sale": "202",
                    "year": "2000",
                },{
                    "sale": "200",
                    "year": "2001"
                }];
                var data2 = [{
                    "sale": "202",
                    "year": "2000",
                }, {
                    "sale": "140",
                    "year": "2001"
                }];

两条线出现了。