AmCharts.makeChart和新的AmCharts.AmSerialChart()之间有什么区别;

时间:2015-02-19 03:45:56

标签: amcharts

部分AmCharts demos使用AmCharts.makeChart

其他AmCharts demos使用new AmCharts.AmSerialChart();

这两种方法有什么不同?

1 个答案:

答案 0 :(得分:4)

使用AmCharts.AmSerialChart(),您必须实例化所有组件(图形,轴,...),向这些对象添加属性,然后将它们分配给图表。这是一种创建图表的效率非常低的方式,正如您在文档中看到的那样(您的第二个链接引用),不推荐使用。
由于其版本3 AmCharts支持新的图表构造函数,可以JSON格式指定所有属性。

示例:

旧式:

AmCharts.ready(function () { 
                chart = new AmCharts.AmSerialChart();
                chart.pathToImages = "../amcharts/images/";
                chart.dataProvider = chartData;
                chart.categoryField = "date";

                // category axis               
                var categoryAxis = chart.categoryAxis;
                categoryAxis.parseDates = true;
                categoryAxis.minPeriod = "DD";

                // graph
                var graph = new AmCharts.AmGraph();
                graph1.valueField = "value";
                graph1.bullet = "round";
                chart.addGraph(graph1);

                var chartCursor = new AmCharts.ChartCursor();
                chartCursor.cursorPosition = "mouse";
                chart.addChartCursor(chartCursor);

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

新风格:(doc

AmCharts.makeChart("chartdiv", {
    type: "serial",
    pathToImages: "../amcharts/images/",
    dataProvider: chartData,
    categoryField: "date",
    categoryAxis: {
        parseDates: true,
        minPeriod: "ss"
    },
    graphs: [{
        valueField: "value",
        bullet: "round"
    }],
    chartCursor: {
        cursorPosition: "mouse"
    },
});