2015-05-10 2 views
3

Я хочу создать scater с datetime как xAxis, мне это удалось, но x-интервал с днями, мне тяжело это делать, когда x-интервал с минутами.HighCharts - Создание рассеяния с datetime

Мои JS:

function startDashboard3DScatter() { 
    $.getJSON('/Handlers/MainHandler.ashx?op=getNetwork', function (data) { 
     Highcharts.getOptions().colors = $.map(Highcharts.getOptions().colors, function (color) { 
      return { 
       radialGradient: { 
        cx: 0.4, 
        cy: 0.3, 
        r: 0.5 
       }, 
       stops: [ 
        [0, color], 
        [1, Highcharts.Color(color).brighten(-0.2).get('rgb')] 
       ] 
      }; 
     }); 
     // Set up the chart 
     var chart = new Highcharts.Chart({ 
      chart: { 
       renderTo: 'networkAlerts', 
       margin: 100, 
       type: 'scatter', 
       width: 600, 
       height: 300, 
       options3d: { 
        enabled: true, 
        alpha: 10, 
        beta: 30, 
        depth: 250, 
        viewDistance: 5, 

        frame: { 
         bottom: { size: 1, color: 'rgba(0,0,0,0.02)' }, 
         back: { size: 1, color: 'rgba(0,0,0,0.04)' }, 
         side: { size: 1, color: 'rgba(0,0,0,0.06)' } 
        } 
       } 
      }, 
      title: { 
       text: 'Network' 
      }, 
      plotOptions: { 
       scatter: { 
        width: 100, 
        height: 100, 
        depth: 20 
       }, 
       series: { 
        marker: { 
         lineWidth: 1 
        } 
       } 
      }, 
      yAxis: { 
       min: 0, 
       title: { text: 'Risk Score' } 
      }, 
      xAxis: { 
       min: 0, 
       max: 6, 
       gridLineWidth: 1, 
       title: { text: 'Time line' }, 
       labels: { 
        formatter: function() { 
         var date = new Date(); 
         date.setDate(date.getDate() - this.value); 
         return date.toDateFormat();// this.value + ' %'; 
        } 
       } 
      }, 
      zAxis: { 
       min: 0, 
       max: 10 
      }, 
      legend: { 
       enabled: false 
      }, 
      series: data 
     }); 
    }); 
}; 

Мой ответ данные из запроса GET =

data = 
[ 
    {"name":"name1", "id":"D/1", "color": "#55BF3B", "data": [[6, 100]]}, 
    {"name":"name2", "id":"D/5", "color": "#55BF3B", "data": [[3, 1]]} 
] 

Данные [ 'дней до сегодняшнего дня, yValue']

Так что я сделал это где я отправляю дни до сегодняшнего дня, и я отформатирую xAxis, проблема, о которой я говорил, заключается в том, что точки с интервалом 1day и я хочу сделать это 1 минута или 1 час интервала.

Любые идеи, я застрял на этом в течение нескольких дней.

ответ

2

Ok решение не было очень трудно после того, как все:

Изменено:

labels: { 
    formatter: function() { 
     var date = new Date(new Date().getTime() - (this.value * 60 * 60 * 1000)); 
     return date.toDateFormat(); 
    } 
} 

И в коде сервера возвращают часов вместо дней, и она работает.

+0

Для даты форматирования вы можете использовать [Highcharts.dateFormat] (http://api.highcharts.com/highcharts#Highcharts.dateFormat) –

Смежные вопросы