zoukankan      html  css  js  c++  java
  • amcharts简单封装

    只是简单是封装了一下,目前只能输出线图(折现,圆滑线等),柱状图。

    代码如下:

    ;!function(win,$,AC,undefined){
        var DDcharts = function(o){
            this.o = $.extend(true,{},this.default_o,o);
            if(this.o.type == 'serial'){
                this.chart = this.AmSerialChart();
                this.setCateGoryAxis().setValueAxis().setChartCursor().setAmLegend();
            }
        };
    
        DDcharts.prototype = {
            default_o:{
                type:'serial', // 类型:折线、饼图等
                dataProvider:{}, // 数据对象
                categoryField:'date',
                autoMargins:true,
                marginTop:0,
                marginRight:0,
                marginBottom:0,
                marginLeft:0,
                startDuration:1, // 动画时间
                write2where:'ddchart',
                // 横轴
                categoryAxis:{
                    parseDates:true,
                    minPeriod:'DD', // 最小时间:fff - milliseconds, ss - seconds, mm - minutes, hh - hours, DD - days, MM - months, YYYY - years.
                    inside:false,
                    fillAlpha:0.1, // 间隔区域透不明度
                    fillColor:'#cccccc', // 间隔区域填充颜色
                    labelRotation:0, // 刻度旋转角度
                    startOnAxis:0
                },
                // 纵轴
                valueAxis:{
                    title:'', // 轴名称
                    axisAlpha:0,
                    dashLength:5
                }, 
                line:{
                    type:'line', // Possible values are: "line", "column", "step", "smoothedLine", "candlestick", "ohlc". XY and Radar charts can only display "line" type graphs.
                    valueField:'value',
                    hideBulletsCount:50
                }
            },
            AmSerialChart:function(){
                var chart = new AC.AmSerialChart();
                chart.dataProvider = this.o.dataProvider;
                chart.categoryField = this.o.categoryField;
                chart.autoMargins = this.o.autoMargins; 
                chart.startDuration = this.o.startDuration;
                if(this.o.autoMargins == false){
                    chart.marginTop= this.o.marginTop; 
                    chart.marginRight= this.o.marginRight; 
                    chart.marginBottom= this.o.marginBottom; 
                    chart.marginLeft= this.o.marginLeft;
                }
                return chart;
            },
            // 设置横轴
            setCateGoryAxis:function(){
                var categoryAxis = this.chart.categoryAxis;
                categoryAxis.parseDates = this.o.categoryAxis.parseDates; // as our data is date-based, we set parseDates to true
                categoryAxis.minPeriod = this.o.categoryAxis.minPeriod; // our data is daily, so we set minPeriod to DD
                categoryAxis.inside = this.o.categoryAxis.inside;
                categoryAxis.gridAlpha = 0; // 格子线不透明度 0 - 透明,1 - 不透明
                categoryAxis.axisAlpha = 0; // 轴不透明度 0 - 透明,1 - 不透明
                categoryAxis.fillAlpha = this.o.categoryAxis.fillAlpha;
                categoryAxis.fillColor = this.o.categoryAxis.fillColor;
                categoryAxis.labelRotation = this.o.categoryAxis.labelRotation;
                categoryAxis.startOnAxis = this.o.categoryAxis.startOnAxis;
                return this;
            },
            // 设置纵轴
            setValueAxis:function(){
                var valueAxis = new AC.ValueAxis();
                valueAxis.axisAlpha = this.o.valueAxis.axisAlpha;
                valueAxis.dashLength = this.o.valueAxis.dashLength;
                valueAxis.title = this.o.valueAxis.title;
                this.chart.addValueAxis(valueAxis);
                return this;
            },
            // 添加鼠标滑过时的效果
            setChartCursor:function(){
                var chartCursor = new AC.ChartCursor();
                this.chart.addChartCursor(chartCursor);
                return this;
            },
            // LEGEND
            setAmLegend:function(){
                var legend = new AC.AmLegend();
                legend.markerType = "square"; // Possible values are: "square", "circle", "line", "dashedLine", "triangleUp", "triangleDown", "bubble", "none".                
                this.chart.addLegend(legend);
            },
            // 增加折线
            addLine:function(valueField,type,title){
                var graph = new AC.AmGraph();
                graph.type = type || this.o.line.type;
                if(graph.type == 'column'){
                    graph.fillAlphas = 0.8;
                }else{
                    graph.bullet = "round";
                }
                graph.valueField = valueField || this.o.line.valueField;
                graph.title = title || graph.valueField;
                graph.balloonText = "[[title]]: [[value]]";
                graph.hideBulletsCount = this.o.line.hideBulletsCount; // this makes the chart to hide bullets when there are more than 50 series in selection
                this.chart.addGraph(graph);
                return this;
            },
            // 输出
            write:function(write2where){
                this.chart.write(write2where || this.o.write2where);
            }
        }
        
        win.DDcharts = DDcharts;
    
    }(this,jQuery,AmCharts);

    使用实例(ddcharts.js为上述封装代码):

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
        
        <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="Public/js/jquery-1.9.1.js" type="text/javascript"></script>        
            <script src="Public/js/amcharts.js" type="text/javascript"></script>        
            <script src="Public/js/ddcharts.js" type="text/javascript"></script>        
            <script type="text/javascript">
                var lineChartData = [{
                    date: new Date(2009, 10, 2),
                    value: 5,
                    value1:6
                }, {
                    date: new Date(2009, 10, 3),
                    value: 15,
                    value1:16
                }, {
                    date: new Date(2009, 10, 4),
                    value: 13,
                    value1:6
                }, {
                    date: new Date(2009, 10, 5),
                    value: 17,
                    value1:36
                }, {
                    date: new Date(2009, 10, 6),
                    value: 15,
                    value1:6
                }, {
                    date: new Date(2009, 10, 9),
                    value: 19,
                    value1:2
                }, {
                    date: new Date(2009, 10, 10),
                    value: 21,
                    value1:6
                }, {
                    date: new Date(2009, 10, 11),
                    value: 20,
                    value1:11               
                }, {
                    date: new Date(2009, 10, 12),
                    value: 20,
                    value1:18
                }, {
                    date: new Date(2009, 10, 13),
                    value: 19,
                    value1:12
                }, {
                    date: new Date(2009, 10, 16),
                    value: 25,
                    value1:17
                }, {
                    date: new Date(2009, 10, 17),
                    value: 24,
                    value1:19
                }, {
                    date: new Date(2009, 10, 18),
                    value: 26,
                    value1:6
                }, {
                    date: new Date(2009, 10, 19),
                    value: 27,
                    value1:2
                }, {
                    date: new Date(2009, 10, 20),
                    value: 25,
                    value1:6
                }, {
                    date: new Date(2009, 10, 23),
                    value: 29,
                    value1:61
                }, {
                    date: new Date(2009, 10, 24),
                    value: 28,
                    value1:16
                }, {
                    date: new Date(2009, 10, 25),
                    value: 30,
                    value1:2
                }, {
                    date: new Date(2009, 10, 26),
                    value: 72,
                    value1:6,
                    customBullet: "images/redstar.png"   // note, one line has a custom bullet defined
                }, 
                 {
                    date: new Date(2009, 10, 27),
                    value: 43,
                    value1:32
                }, {
                    date: new Date(2009, 10, 30),
                    value: 31,
                    value1:16
                }, {
                    date: new Date(2009, 11, 1),
                    value: 30,
                    value1:16
                }, {
                    date: new Date(2009, 11, 2),
                    value: 29,
                    value1:6
                }, {
                    date: new Date(2009, 11, 3),
                    value: 27,
                    value1:3
                }, {
                    date: new Date(2009, 11, 4),
                    value: 26,
                    value1:45
                }];
    
            $(function(){
                var ddcharts = new DDcharts({dataProvider:lineChartData,categoryAxis:{inside:false,labelRotation:0},line:{type:'smoothedLine'}});
                ddcharts.addLine().addLine("value1",'line').write('chartdiv');
            });    
            </script>
        </head>
        
        <body>
            <div id="chartdiv" style="100%; height:400px;"></div>
        </body>
    
    </html>
  • 相关阅读:
    openstack 网络架构 nova-network + neutron
    编程算法
    16周(项目四 动态数组)
    iptables惹的祸
    【剑指offer】和为定值的连续正数序列
    root用户改动普通用户文件
    Android学习四、Android中的Adapter
    初探swift语言的学习笔记四(类对象,函数)
    crtmpserver 基本流程分析
    八大排序算法总结
  • 原文地址:https://www.cnblogs.com/sooj/p/3152033.html
Copyright © 2011-2022 走看看