Javascript 线图形在AM图表中呈现为直线

Javascript 线图形在AM图表中呈现为直线,javascript,graph,amcharts,Javascript,Graph,Amcharts,我正在尝试绘制线条图,但这些图形在图形区域的底部呈现为一条直线。我也在其中添加了列图形。它们显示正确,但直线图显示的不是正确的直线。我在最后添加了截图。请帮忙 这是我的图表标题 var header_graph = [{"balloonText":"[[title]] of [[category]]:[[value]]", "fillAlphas":"1", "id":"ProductA",

我正在尝试绘制线条图,但这些图形在图形区域的底部呈现为一条直线。我也在其中添加了列图形。它们显示正确,但直线图显示的不是正确的直线。我在最后添加了截图。请帮忙

这是我的图表标题

var header_graph = [{"balloonText":"[[title]] of [[category]]:[[value]]",
                       "fillAlphas":"1",
                       "id":"ProductA",
                       "title":"Produc A ",
                       "type":"SmoothedLine",
                       "valueField":"column2"}]; 
这是我的图形数据值

var data_graph  = [{"category":"Jan",  
                    "column1":"85", "column2":"24", "column3":"343", 
                    "column4":"85",  "column5":"31", "column6":"267", 
                    "column7":"85",  "column8":"19", "column9":"439"},......]
这是生成图表的整个脚本

var chart = AmCharts.makeChart("chartdiv", {
    "type": "serial",
    "depth3D": 2,
    "startDuration": 1,
    "theme": "light",
    "precision": 2,
    "valueAxes": [{
        "id": "v1",
        "title": "",
        "position": "left",
        "autoGridCount": false,
    }, {
        "id": "v2",
        "title": "",
        "gridAlpha": 0,
        "position": "right",
        "autoGridCount": false
    }],
    "graphs": header_graph ,
    "chartScrollbar": {
        "graph": "column2",
        "oppositeAxis": false,
        "offset": 30,
        "scrollbarHeight": 50,
        "backgroundAlpha": 0,
        "selectedBackgroundAlpha": 0.1,
        "selectedBackgroundColor": "#888888",
        "graphFillAlpha": 0,
        "graphLineAlpha": 0.5,
        "selectedGraphFillAlpha": 0,
        "selectedGraphLineAlpha": 1,
        "autoGridCount": true,
        "color": "#AAAAAA"
    },
    "chartCursor": {
        "pan": true,
        "valueLineEnabled": true,
        "valueLineBalloonEnabled": true,
        "cursorAlpha": 0,
        "valueLineAlpha": 0.2
    },
    "categoryField": "category",
    "categoryAxis": {
        "parseDates": false,
        "dashLength": 1,
        "minorGridEnabled": true,
        "gridPosition": "start"
    },
    "legend": {
        "useGraphSettings": true,
        "position": "bottom"
    },
    "balloon": {
        "borderThickness": 1,
        "shadowAlpha": 0
    },
    "export": {
        "enabled": false
    },
    "dataProvider":  data_graph

});

图表根据图表的值范围按比例绘制直线,与其他列相比,该直线的值似乎非常小。因此,它将看起来像一条接近底部的直线

您可以使用
valueScrollbar
,让用户放大valueAxis/Y轴,以便更好地查看线条。它具有与中所示相同的属性:

除此之外,或者让你的valueAxis变小,你能做的就不多了

(主题之外,您应该将值设置为数字,而不是字符串。)

编辑

您可以使用动态设置图表的最大值和最小值,让图表在图表初始化时确定这些值,如下所示:

//get the maximum and minimum values from the dataProvider
AmCharts.addInitHandler(function(chart) {
  var maximum = Number.MIN_VALUE;
  var minimum = Number.MAX_VALUE;
  chart.dataProvider.forEach(function(data) {
    //for each dataProvider element, check the properties that correspond to the chart graphs' valueFields.
    chart.graphs.forEach(function(graph) {
      if (data[graph.valueField] != null) {
        maximum = Math.max(maximum, data[graph.valueField]);
        minimum = Math.min(minimum, data[graph.valueField]);
      }
    });
  });
  chart.valueAxes[0].maximum = maximum;
  chart.valueAxes[0].minimum = minimum;
  chart.valueAxes[0].strictMinMax = true;
}, ["serial"]);

好的,让我试试这个。是的,你是对的,但我不确定最大值轴从2000到2500会持续多长时间,这只是浪费空间,如果在这个范围内没有数据,我们怎么能忽略这个范围,让它保持在2000只设置最大值轴。根据图表的设置方式,可以在创建图表之前在JavaScript中动态执行此操作,也可以通过设置自己的代码在图表初始化时运行,并动态设置最小值和最大值。我用一些代码更新了我的答案,演示了如何做到这一点。
//get the maximum and minimum values from the dataProvider
AmCharts.addInitHandler(function(chart) {
  var maximum = Number.MIN_VALUE;
  var minimum = Number.MAX_VALUE;
  chart.dataProvider.forEach(function(data) {
    //for each dataProvider element, check the properties that correspond to the chart graphs' valueFields.
    chart.graphs.forEach(function(graph) {
      if (data[graph.valueField] != null) {
        maximum = Math.max(maximum, data[graph.valueField]);
        minimum = Math.min(minimum, data[graph.valueField]);
      }
    });
  });
  chart.valueAxes[0].maximum = maximum;
  chart.valueAxes[0].minimum = minimum;
  chart.valueAxes[0].strictMinMax = true;
}, ["serial"]);