一、入门使用:

附上官方入门教程 Documentation - Apache ECharts 教程分了三步没什么好简化的了,这里说一下注意事项吧

1.下载echarts

  下载echarts的时候可以根据需求下载单独的文件或者整个源码包,源码包包含的内容更加的全面,不过目前我用到的需要下载源码包的也就地图

2.echarts引用

  老版本的echarts引入比较复杂,建议直接用新版的(具体老版本是哪个版本我忘记了....),官网下载最新的就好了

3.绘制图表

  绘制图表的时候需要创建一个有固定宽高的dom
  附上官方提供的示例

<!DOCTYPE html>  
<html> 
<head>
    <meta charset="utf-8">  
    <title>ECharts</title>
    <!-- 引入 echarts.js -->
    <script src="echarts.min.js></script>
</head>
<body>  
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->  
    <div id="main" style="width: 600px;height:400px;"></div> 
    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));  
        // 指定图表的配置项和数据  
         var option = {  
             title: {  
                 text: 'ECharts 入门示例'  
             },  
             tooltip: {},  
             legend: {  
                 data:['销量']  
             },  
             xAxis: {  
                 data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]  
             },  
             yAxis: {},  
             series: [{  
                 name: '销量',  
                 type: 'bar',  
                 data: [5, 20, 36, 10, 10, 20]  
             }]  
         };  

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
    </script>
</body>
</html>

二、常用配置

1.统计图绘制

  确定生成图表的dom节点
  var myChart = echarts.init(document.getElementById('main'));
  getElementById里是dom的id
  然后是统计图的配置了var option = {……},
  最后是绘制myChart.setOption(option);
  而且每个统计图生成的时候都会有这三部分,所以,可以把同类型的统计图生成封装成一个方法,避免了多个统计图一直命名的问题。

2.必需的配置项

  如果是没有坐标轴的图,series项必不可少,series里type和data必不可少。

series: [
    {
        type: 'pie',
        data: [
            {value: 335, name: '直接访问'},
            {value: 310, name: '邮件营销'},
        ],
    }
]

  如果是有坐标轴的除了series外,xAxis和yAxis也是必需的,xAxis为X轴配置信息,yAxis为y轴配置信息。

xAxis: [
    {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
    }
],
yAxis: [
    {
        type: 'value'
    }
],
series: [
    {
        type: 'bar',
        data: [10, 52, 200, 334, 390, 330, 220]
    }
]

3.常用示例及配置项注释

饼图

series: [
    {
        name: '访问来源',//tooltip里的{a},也就是鼠标移入提示框中的标题
        type: 'pie',//类型
        radius: '55%',//[0,’55%’]/’55%’两种写法,[0,’55%’]0为内半径,被挖空的大小大于0即环形图,’55%’为外半径;仅写作'55%'为纯饼图
        center: ['50%', '60%'],//饼图的中心(圆心)坐标,数组的第一项是横坐标,第二项是纵坐标。
        data: [//值
            {value: 335, name: '直接访问'},
            {value: 310, name: '邮件营销'},
            {value: 234, name: '联盟广告'},
            {value: 135, name: '视频广告'},
            {value: 1548, name: '搜索引擎'}
        ],

    }
]

柱状图

var option = {
grid: {//边距以x轴和外轴为标准
    left:50,
    top:75,
    bottom:30,
    right:30,
},
xAxis: {
    type: 'value',//‘value’为值'category'为类目,type决定了柱状图是横向还是纵向
    name:’单位:个’,//坐标轴名称
    nameLocation:’end’,//名称位置start、middle/center、end对应坐标轴的开始位置、中间位置和结束位置,start和middle容易与刻度值重叠
    axisLine:{//坐标轴
        lineStyle:{//坐标轴样式
            color:'#fff'
        }
    },
    splitLine:{// 坐标轴在 grid 区域中的分隔线。
        show:false,
    },
    axisTick:{//坐标轴刻度线
        show:false,
        alignWithLabel:true,//刻度是否与标签对齐,true为对齐
        length:5,//刻度长度
    },
    axisLabel:{ //坐标轴刻度标签
        margin:18, //坐标轴刻度标签与轴线的距离
        fontFamily:'Adobe 黑体 Std',
        color:'#c8d7dc',
        fontSize:14,
        rotate:45,//刻度标签旋转的角度
    }
},
yAxis: {//y轴配置项,与x轴一样
    // gridIndex:1,
    type: 'category',
    data: ['大众汽车', '长城汽车', '海科', '奔驰汽车', '高德'],
    splitLine:{
        show:false,
    },
    axisLine:{
        lineStyle:{
            color:'#fff'
        }
    },
    axisTick:{
        show:false
    },
    axisLabel:{
        fontFamily:'Adobe 黑体 Std',
        fontSize:14,
        color:'#c8d7dc',
    }
},
series: [
    {
        name: '2011年',
        type: 'bar',
        label:{//图形上的文本标签
            show:true,
            position:‘top’,//标签的位置,常用的有top、insideBottom和inside
            distance: 15,//距离图形元素的距离,positon为inside时不生效
            color:’#fff’ ,//文字颜色,,以下是常用的文字设置
            fontStyle: "normal",
            fontWeight: "bold",
            fontSize: 14,
            align: "center",
            verticalAlign: "bottom",
            textBorderColor: "rgba(57, 41, 41, 1)" ,
            textBorderWidth: 2,
            textShadowColor: "rgba(0, 0, 0, 1)" ,
            textShadowBlur: 7.5,
            textShadowOffsetX: 5,
            textShadowOffsetY: 3,
            backgroundColor: {//背景设置‘#fff’可直接设置背景色,{image:}可设置背景图
                image: "xxx/xxx/xxx.png",
            },
            borderWidth: 1, //文字块边框宽度
            borderColor: "rgba(33, 27, 27, 1)" , //文字块边框颜色
            padding: [5, 19, 5, 19] , //文字块内边距,上右下左
        },
        barWidth: 18,//柱条的宽度,不设时自适应。
        data: [18203, 23489, 29034, 104970, 131744]
    },
]
};

地图

var myChart = echarts.init(document.getElementById(id),theme);
myChart.showLoading();//统计图加载动画

$.get('js/map/json/province/jiangsu.json', function (geoJson) {//引入地图文件,在源码包的map文件夹下有各省份、中国和世界地图

myChart.hideLoading();//关闭加载动画

echarts.registerMap('jiangsu', geoJson);

var option = {
    visualMap: {//图例设置,可根据值给区域赋颜色
        min: 800,
        max: 50000,
        text: ['High', 'Low'],
        realtime: false,
        calculable: true,
        inRange: {
            color: [ '#1f2c5b','#294594']
        }
    },
    series: [
        {
            name: '物联网卡全省分布',
            type: 'map',
            mapType: 'jiangsu', // 自定义扩展图表类型
            label: {
                show: true,
                position: ['50%', '50%'],
                color:'#d6bc46',
                fontSize:18,
                fontWeight:'bold'

            },
            itemStyle:{
                areaColor:'#294594',
                borderColor:'#00c7f0'
            },
            data: [//各区域及赋值,不同省份对应的区域不同,可以百度搜索或者查看json文件的信息,百度可能更方便
                {name: '徐州市', value: 20057.34},
                {name: '宿迁市', value: 15477.48},
                {name: '连云港市', value: 31686.1},
                {name: '淮安市', value: 6992.6},
                {name: '盐城市', value: 44045.49},
                {name: '扬州市', value: 37659.78},
                {name: '泰州市', value: 45180.97},
                {name: '南京市', value: 55204.26},
                {name: '镇江市', value: 21900.9},
                {name: '常州市', value: 4918.26},
                {name: '无锡市', value: 5881.84},
                {name: '苏州市', value: 4178.01},
                {name: '南通市', value: 806.98}
            ],
        }
    ]
};

myChart.setOption(option);

公用

legend: {
    orient: 'vertical',//图例列表的布局朝向。Vertical竖向排列。Horizontal水平排布列
    right: 45,//边距left、top、right、bottom
    bottom:50,
    data: ['车辆服务', '智能抄表', '移动媒体', '生产环境'],//值
    icon:'circle',// 图例项的 icon,常用的有'circle','rect', 'roundRect','triangle','pin'或者用'image://http://xxx.xxx.xxx/a/b.png'的形式,用png或者svg显示图例
    textStyle: {
        // color:['#105b6e', '#5ab1ef', '#ffb980', '#d87a80','#000']
        color:'#feffff'
    }
},
tooltip: {
trigger: 'item',//item主要在无类目轴的图表中使用(如散点图、饼图),axis用在有类目轴的图表中使用(如柱状图)
formatter: '{b}<br/>{c} (p / km2)',
//模板变量有 {a}, {b},{c},{d},{e},分别表示系列名,数据名,数据值等。 在 trigger 为 'axis' 的时候,会有多个系列的数据,此时可以通过 {a0}, {a1}, {a2} 这种后面加索引的方式表示系列的索引。 不同图表类型下的 {a},{b},{c},{d} 含义不一样。 其中变量{a}, {b}, {c}, {d}在不同图表类型下代表数据含义为:
//折线(区域)图、柱状(条形)图、K线图 : {a}(系列名称),{b}(类目值),{c}(数值), {d}(无)
//散点图(气泡)图 : {a}(系列名称),{b}(数据名称),{c}(数值数组), {d}(无)
//地图 : {a}(系列名称),{b}(区域名称),{c}(合并数值), {d}(无)
//饼图、仪表盘、漏斗图: {a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比)

},

主题

最后说一下主题
可以自定义一组主题颜色,这个是一组渐变色

var theme = {
    color:{
        type: 'linear',
        x: 1,
        y: 0,
        x2: 0,
        y2: 0,
        colorStops: [{
            offset: 0, color: '#00c7f0' // 0% 处的颜色
        }, {
            offset: 1, color: '#1c2d53' // 100% 处的颜色
        }],
        globalCoord: false // 缺省为 false
    },
}

一组纯色

var theme = {
    color:[ '#1f2c5b','#294594']
}

使用方法:

var myChart = echarts.init(document.getElementById(id),theme);

对应的图例文字颜色可设置为主题颜色或统一一个颜色

legend: {
    orient: 'vertical',
    right: 45,
    bottom:50,
    data: icon_list,
    icon:'circle',
    textStyle: {
        // color:['’, '', '', '','']
        color:'#feffff'
    }
},