百度Echarts图表使用小结

2015年11月20日

最近因为项目需要统计图表类的JS插件,于是找找找,感觉Echarts还不错,学习了下


例子

以下代码是官网文档给的例子 通过以下代码可以创建一个基本的图表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<!DOCTYPE html>
<head>
    <meta charset="utf-8">
    <title>ECharts</title>
</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="height:400px"></div>
    <!-- ECharts单文件引入 -->
    <script src="http://echarts.baidu.com/build/dist/echarts.js"></script>
    <script type="text/javascript">
        // 路径配置
        require.config({
            paths: {
                echarts: 'http://echarts.baidu.com/build/dist'
            }
        });
        
        // 使用
        require(
            [
                'echarts',
                'echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载
            ],
            function (ec) {
                // 基于准备好的dom,初始化echarts图表
                var myChart = ec.init(document.getElementById('main')); 
                
                var option = {
                    tooltip: {
                        show: true
                    },
                    legend: {
                        data:['销量']
                    },
                    xAxis : [
                        {
                            type : 'category',
                            data : ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
                        }
                    ],
                    yAxis : [
                        {
                            type : 'value'
                        }
                    ],
                    series : [
                        {
                            "name":"销量",
                            "type":"bar",
                            "data":[5, 20, 40, 10, 10, 20]
                        }
                    ]
                };
        
                // 为echarts对象加载数据 
                myChart.setOption(option); 
            }
        );
    </script>
</body>

扩展

以下是通过此图表扩展,结合php+ajax构造自己的图表,路径很重要,格式也很重要,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<script type="text/javascript"> 
	var city_name = [];
	var city_view = [];
	$(function(){
		$.ajax({
	        type:'post',
	        url:'__CONTROLLER__/getData',
	        async :false,
	        dataType:'json',
	        success:function(data){
	        	for(var i in data){
	        		city_name.push(data[i]['art_city']);
	        		city_view.push(data[i]['art_view']);
	        	}
	        }
	    });
	})
    // 路径配置
    require.config({
        paths: {
            echarts: '__PUBLIC__/chart/'
        }
    });
    
    // 使用
    require(
        [
            'echarts',
            'echarts/chart/bar', // 使用柱状图就加载bar模块,按需加载
            'echarts/chart/line' // 使用柱状图就加载bar模块,按需加载
        ],
        function (ec) {
            // 基于准备好的dom,初始化echarts图表
            var myChart = ec.init(document.getElementById('main'));
            
            var option = {
				    title : {
				        text: '城市文章阅读量',
				        subtext: ''
				    },
				    tooltip : {
				        trigger: 'axis'
				    },
				    legend: {
				        data:['总阅读量', '一天内阅读量']
				    },
				    toolbox: {
				        show : true,
				        feature : {
				            mark : {show: true},
				            dataView : {show: true, readOnly: false},
				            magicType: {show: true, type: ['line', 'bar']},
				            restore : {show: true},
				            saveAsImage : {show: true}
				        }
				    },
				    calculable : true,
				    xAxis : [
				        {
				            type : 'value',
				            boundaryGap : [0, 0.01]
				        }
				    ],
				    yAxis : [
				        {
				            type : 'category',
				            data : city_name
				        }
				    ],
				    series : [
				        {
				            name:'总阅读量',
				            type:'bar',
				            data:city_view	//其中的数据不能为空,不然数据会出不来
				        },
				        {
				            name:'一天内阅读量',
				            type:'bar',
				            data:city_view
				        }
				    ]
				};
    
            // 为echarts对象加载数据 
            myChart.setOption(option); 
        }
    );
</script>

打完收工:P


版权所有:Arrow的代码之路    粤ICP备17138539号-1