当只有一个点可用时,图表显示没有任何点

时间:2016-12-13 16:40:47

标签: javascript amcharts

我正在使用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 );
        }
      }
    }
  } ]
} );

1 个答案:

答案 0 :(得分:0)

你的minPeriod太小了。您的数据以分钟为间隔,按您的setTime计算,因此您希望将其设置为分钟("mm"),而不是毫秒("fff")。

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

Updated fiddle