2015-10-02 4 views
1

В первом случае я извиняюсь за плохой английский я французский: DHighcharts addPoint функция показать ничего

Так что я недавно пытался показать некоторые синхронизированные данные по HighchartsJs.

Я пытаюсь получить данные с помощью ajax, и я создал функцию, которая добавляет всю точку, которую я хочу.

Но когда я пытаюсь загрузить его, я вижу информацию о курсоре, но ни одна точка не отображается! :/

Вот моя функция успеха по запросу AJAX:

success: function(resultat){ 

       function addPoint(){ 

        var chart = $('#graphResult').highcharts(); 

        for(i in resultat){ 

         chart.series[0].addPoint([Date.UTC(year, month, day, resultat[i]["time"].split(":")[0]), resultat[i]["value"]], true); 

        } 

       } 

       $('#graphResult').highcharts({ 
         chart: { 
          type: 'spline', 
          events: { 
           load: addPoint 
          } 
         }, 
         title: { 
          text: 'Température du jour' 
         }, 
         xAxis: { 
          type: 'datetime', 
          dateTimeLabelFormats: { // don't display the dummy year 
           minute: '%H:%M', 
           hour: '%H:%M', 
          }, 
          title: { 
           text: 'Heure' 
          } 
         }, 
         yAxis: { 
          title: { 
           text: 'Température (°C)' 
          }, 
          min: 0 
         }, 
         tooltip: { 
          headerFormat: '<b>{series.name}</b><br>', 
          pointFormat: '{point.y:.2f} °C' 
         }, 

         plotOptions: { 
          spline: { 
           marker: { 
            enabled: true 
           } 
          } 
         }, 

         series: [{ 
          name: "Température du " + String(day) + "/" + String(month) + "/" + String(year), 
         }] 
       }); 

      } 

Как вы можете видеть, у меня есть информация, но не отображается пункт: http://puu.sh/kwfnV/ad6302810a.png

+0

Я думаю, вы должны проверить данные вернулся с сервера, я пробовал ваш код и работает: http://jsfiddle.net/69k80L58/2/ Я добавил console.log для переменной «resultat», вы должны проверять данные с помощью консоли разработчика браузера. Поместите даже точку останова на цикл. –

+0

Спасибо за помощь, я думаю, это потому, что мой json неправильно разбирается! Вот результат работы console.log: 0: Object Дата: «2015-09-18» ID: «237» время: «09:00:00» Тип: «температура» значение: «25 « –

+0

здесь правильно разобран json: [{« время »:« 09:00:00 »,« значение »:« 25 »}, {« время »:« 10:00:00 »,« значение »: 30 "}], но теперь я ничего не получаю в переменной result: D –

ответ

1

Как вы сказали в комментариях, проблема находится в данных, возвращаемых с сервера.

Это ваш Json:

[{"time":"09:00:00","value":"25"},{"time":"10:00:00","value":"30"}] 

"ценность" является строкой, то вы должны проанализировать, как Float:

chart.series[0].addPoint(
    [Date.UTC(year, month, day, 
    resultat[i]["time"].split(":")[0]), 
    parseFloat(resultat[i]["value"])], true 
); 

Fiddle: http://jsfiddle.net/69k80L58/4/

+0

отлично работает! Спасибо за помощь ! –

+0

Я отредактировал ответ, я думаю, что в вашем сценарии лучше использовать parseFloat() вместо parseInt() (вы можете иметь десятичные значения для температур). Обновленная скрипка: http://jsfiddle.net/69k80L58/4/ –

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