1

我很难在基本高位图表上显示用日期分隔的字符串

我正在从 twitter 获取推文并将其保存到数组中,然后将数组转换为用逗号和引号分隔的字符串。
不幸的是,我无法在图表上显示它们,我不知道我做错了什么。

    function search(){
    var value = $('#box').val();
    var array=[];
    var dateArray = [];
    var dateString;
    if (value!==""){$.getJSON("",
      function(data){

   $.each(data.results, function(i, item){
      var user=item.from_user;
      var created_at=new Date(item.created_at);
      var month = created_at.getMonth();
      var day = created_at.getDate();
      var year = created_at.getFullYear();
      var created= day +'/'+ month+ '/'+ year;
      array.push({date:created,username:user});
     });
    //    console.log(array);
    for (var i in array) {
        dateArray.push(array[i].date);
            }  
    dateString="'" + dateArray.join("','") + "'";
    console.log(dateString);
    });
      }
    var chart;
    chart = new Highcharts.Chart({
    chart: {
        renderTo: 'container',
        type: 'line',
        marginRight: 130,
        marginBottom: 25
    },
    title: {
        text: 'Monthly Average Temperature',
        x: -20 //center
    },
    subtitle: {
        text: 'Source: WorldClimate.com',
        x: -20
    },
    xAxis: {
        categories: [dateString]
    },
4

2 回答 2

2

修复了 JsFiddle

您的 x 轴参数应如下所示:

xAxis: {
        categories: dateString
    },

阿尔斯,只是改变这个:-)

for (var i in array) {
    dateString.push(array[i].date);
}  

highchart(dateString);

哦,你当然应该改成这个。

<input type="text" id="box" value="a"/>


额外调查信息: 看起来(在旧情况下)

console.log(stringArray);
highchart(stringArray);

是空的。你会通过吗

highchart(["ab", "b", "c"]);

那你就没事了。这是因为您传递的是一个空数组,您是在获得 JSON 数据之前创建图表。因此,我将创建移至 JSON 函数。

于 2012-08-02T13:19:13.143 回答
0

为什么不使用 xAxis 作为datetime

xAxis: {
    type: 'datetime'
},

将 twitter 数据中的日期解析为 JS 时间,并将类似以下的内容作为您的系列数据数组:

[[<jstime1>, "big cool tweet1"], [<jstime2>, "big cool tweet2"]] 
于 2012-08-02T13:01:16.047 回答