2012-03-28 39 views
0

我想使用AMChart显示直线图形。但是如果它们的y值相等,它不会在点之间画线。我怎么解决这个问题。 AM图表在图中未绘制直线

<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <title>amCharts examples</title> 
    <link rel="stylesheet" href="style.css" type="text/css"> 
    <script src="../amcharts/amcharts.js" type="text/javascript"></script>   
    <script type="text/javascript"> 
     var chart; 
     var graph; 

     // months in JS are zero-based, 0 means January 
     var chartData = [{ 
      year: new Date(1950, 0), 
      value: 300 
     }, { 
      year: new Date(1951, 0), 
      value: 300 
     }, { 
      year: new Date(1952, 0), 
      value: 300 
     }, { 
      year: new Date(1953, 0), 
      value: 300 
     }]; 


     AmCharts.ready(function() { 
      // SERIAL CHART 
      chart = new AmCharts.AmSerialChart(); 
      chart.pathToImages = "../amcharts/images/"; 
      chart.dataProvider = chartData; 
      chart.marginLeft = 10; 
      chart.categoryField = "year"; 
      chart.zoomOutButton = { 
       backgroundColor: '#000000', 
       backgroundAlpha: 0.15 
      }; 

      // listen for "dataUpdated" event (fired when chart is inited) and call zoomChart method when it happens 
      chart.addListener("dataUpdated", zoomChart); 

      // AXES 
      // category 
      var categoryAxis = chart.categoryAxis; 
      categoryAxis.parseDates = true; // as our data is date-based, we set parseDates to true 
      categoryAxis.minPeriod = "YYYY"; // our data is yearly, so we set minPeriod to YYYY 
      categoryAxis.gridAlpha = 0; 

      // value 
      var valueAxis = new AmCharts.ValueAxis(); 
      valueAxis.axisAlpha = 0; 
      valueAxis.inside = true; 
      chart.addValueAxis(valueAxis); 

      // GRAPH     
      graph = new AmCharts.AmGraph(); 
      graph.type = "smoothedLine"; // this line makes the graph smoothed line. 
      graph.lineColor = "#d1655d"; 
      graph.negativeLineColor = "#637bb6"; // this line makes the graph to change color when it drops below 0 
      graph.bullet = "round"; 
      graph.bulletSize = 5; 
      graph.lineThickness = 2; 
      graph.valueField = "value"; 
      chart.addGraph(graph); 

      // CURSOR 
      var chartCursor = new AmCharts.ChartCursor(); 
      chartCursor.cursorAlpha = 0; 
      chartCursor.cursorPosition = "mouse"; 
      chartCursor.categoryBalloonDateFormat = "YYYY"; 
      chart.addChartCursor(chartCursor); 

      // SCROLLBAR 
      var chartScrollbar = new AmCharts.ChartScrollbar(); 
      chartScrollbar.graph = graph; 
      chartScrollbar.backgroundColor = "#DDDDDD"; 
      chartScrollbar.scrollbarHeight = 30; 
      chartScrollbar.selectedBackgroundColor = "#FFFFFF"; 
      chart.addChartScrollbar(chartScrollbar); 

      // WRITE 
      chart.write("chartdiv"); 
     }); 

     // this method is called when chart is first inited as we listen for "dataUpdated" event 
     function zoomChart() { 
      // different zoom methods can be used - zoomToIndexes, zoomToDates, zoomToCategoryValues 
      chart.zoomToDates(new Date(1949, 0), new Date(1955, 0)); 
     } 
    </script> 
</head> 

<body> 
    <div id="chartdiv" style="width:100%; height:400px;"></div> 
</body> 

回答

0

你使用谷歌浏览器的任何运气?如果是的话,我有同样的问题,它似乎是一个在谷歌浏览器本身的错误,这可以防止绘制共线多段线,如你在你的问题描述...

这是一个错误报告的链接,你可能会明星遵循... http://code.google.com/p/chromium/issues/detail?id=60306

+0

感谢您的回答,使用AMChart的最新版本后,没有问题显示线图。 – Neo 2012-04-02 04:49:28

0

我不确定这一点。但同样的事情发生在我身上。我使用了amcharts 2.10.8,浏览器是IE 9,FF 21.即使纵轴的值是常量(即271),曲线图也显示为曲线而不是直线。所以我改变了graph.typeline而不是smoothedLine。这帮助我克服了这个问题。