2016-12-13 3 views
0

Я использую AmSerialChart для отображения данных диаграммы. Он отлично работает, когда данные диаграммы имеют более одного значения. Если данные диаграммы имеют только одно значение, ось точки и категории не отображается. Например, в приведенном ниже коде, если я повторяю цикл for с более чем 1, точки и ось будут отображаться в порядке. Но если я установлен в 1, точка и ось не отображаются. http://jsfiddle.net/arpd17uf/Отображение диаграммы без какой-либо точки, когда доступно только одна точка

var chartData = generatechartData(); 

function generatechartData() { 
    var chartData = []; 
    var firstDate = new Date();  

    for (var i = 0; i < 1; i++) { 
    var newDate = new Date(firstDate); 
    newDate.setTime(newDate.getTime() + (i * 60 * 1000)); 

    var visits = Math.round(Math.random() * 90 - 45); 

    chartData.push({ 
     date: newDate, 
     visits: visits 
    }); 
    } 
    return chartData; 
} 


var chart = AmCharts.makeChart("chartdiv", { 
    "theme": "light", 
    "type": "serial", 
    "dataProvider": chartData, 
    "dataDateFormat": "YYYY-MM-DD JJ:NN:SS", 
    "valueAxes": [ { 
    "inside": true, 
    "axisAlpha": 0 
    } ], 
    "graphs": [ { 
    "id": "g1", 
    "balloonText": "<div style='margin:5px; font-size:19px;'><span style='font-size:13px;'>[[category]]</span><br>[[value]]</div>", 
    "bullet": "round", 
    "bulletBorderAlpha": 1, 
    "bulletBorderColor": "#FFFFFF", 
    "hideBulletsCount": 50, 
    "lineThickness": 2, 
    "lineColor": "#fdd400", 
    "negativeLineColor": "#67b7dc", 
    "valueField": "visits" 
    } ], 
    "chartScrollbar": { 

    }, 
    "chartCursor": {}, 
    "categoryField": "date", 
    "categoryAxis": { 
    "parseDates": true, 
    "axisAlpha": 0, 
    "minHorizontalGap": 55, 
    "dashLength": 1, 
    "minorGridEnabled": true, 
    "position": "top", 
    "minPeriod": "fff" 
    }, 
    "listeners": [ { 
    "event": "dataUpdated", 
    "method": function() { 
     if (chart) { 
     if (chart.zoomToIndexes) { 
      chart.zoomToIndexes(130, chartData.length - 1); 
     } 
     } 
    } 
    } ] 
}); 

ответ

0

Ваш minPeriod слишком мал. Ваши данные идут с небольшими интервалами, и ваши расчеты в SetTime будут настроены на минуты ("mm"), а не миллисекунды ("fff").

"categoryAxis": { 
    // ... omitted 
    "minPeriod": "mm" 
    }, 

Updated fiddle

+0

Спасибо за быстрое наблюдение. На самом деле иногда данные с меткой времени различаются в миллисекундах, поэтому я добавил minPeriod как «fff». Можете ли вы предложить, как отображать единую точку данных с миллисекундами. Например [http://jsfiddle.net/arpd17uf/2/] –

+0

В этом случае установите [equalSpacing] (http://docs.amcharts.com/javascriptcharts/CategoryAxis#equalSpacing) в true в вашей категории. Это будет соответствующим образом отрегулировать ось. [скрипка] (http://jsfiddle.net/arpd17uf/4/) – xorspark

+0

Спасибо, что так прекрасно сейчас –

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

  • Нет связанных вопросов^_^