echart简介_动力节点Java学院整理


Posted in Javascript onAugust 11, 2017

1. 插件的下载

以下是ECharts的下载链接,需要注意的是ECharts内部也是依赖于另一个插件的叫ZRender,当然对于大部分图表而言不需要ZRender的,但是对于地图控件及其他复杂的呈现控件而已都是需要ZRender的。为了避免不要的问题出现,建议大家在下载ECharts时同时也要下载ZRender。

ECharts下载地址: http://echarts.baidu.com/

ZRender下载地址:http://ecomfe.github.io/zrender/index.html

下载之后解压各自的文件目录结构如下:

ECharts:

echart简介_动力节点Java学院整理     

 ZRender:

 echart简介_动力节点Java学院整理

2. 插件的引用

首先,新建一个Web应用程序,然后添加刚刚下载的文件,具体的目录结构如下:

echart简介_动力节点Java学院整理

这里有以下几点需要说明:

  • 所有的跟ECharts有关的文件全部都在echarts文件夹下
  • echarts文件夹的内容分为两部分

1) 一部分是以echarts开头的js文件,这些文件全部来自于1.中的ECharts文件目录中的js文件夹下的文件,也就是1.中的图中红框标注的js下的文件。如下:

echart简介_动力节点Java学院整理

2)另一部分是一个名为zrender的文件夹,这里需要特别注意的是该文件夹的命名必须为zrender,因为在echarts的js文件中对zrender的引用都是以zrender为根目录的,zrender文件夹的内容即为1.中zrender文件目录中的src文件夹下的内容,如下:

echart简介_动力节点Java学院整理

3. 在页面中的具体使用

按照上边的步骤配置过之后,我们就可以在页面中引用了,这里我主要是演示地图控件的使用方式,因为地图的引用跟其他的基本图形的引用不太一样。其他的图形的呈现也会做一个简要的演示。

MapChart

首先在跟2中的echarts文件夹同一个目录(也就是Modules文件夹)下添加一个aspx页或html页,需要注意的是,如果是在aspx页中使用echarts时,需要把要渲染的div放在form标签之外,否则图形是显示不出来的。

在head标签中添加对echarts的引用如下:

<head runat="server"> 
  <title></title> 
  <script src="echarts/esl.js" type="text/javascript"></script> 
</head>

在body标记中,form标记之外,添加一个div,用来做图表渲染的容器。如下:

<body> 
 
<div id="main"style="height:500px;border:1px solid #ccc;padding:10px;"></div> 
 
…………… 
 
…………… 
 
</body>

在上面中添加的div标记下,添加如下的js代码段,如下:

<script type="text/javascript"> 
 
    //为模块加载器配置echarts的路径,这里主要是配置map图表的路径,其他的图表跟map的配置还不太一样,下边也会做另一种类型的图表事例。 
这里引用的主要是echarts文件夹下的echarts-map文件,而其他类型的图表引用的都是echarts文件夹下的echarts文件。 
 
    require.config({ 
 
      paths: { 
 
        echarts:'./echarts/echarts', 
 
        'echarts/chart/map':'./echarts/echarts-map' 
 
      } 
 
    }); 
 
   //动态加载echarts,在回掉函数中使用,要注意保持按需加载结构定义图表路径 
 
    require( 
 
    [ 
 
      'echarts', 
 
      'echarts/chart/map' 
 
    ], 
 
    function (ec) { 
 
      varmyChart=ecinit(documentgetElementById('main')); 
 
      //option主要是图标的一些设置,这不是这篇文章的重点,关于具体的设置可以参考官方的文档说明文档 
 
option= { 
 
        title: { 
 
          text:'iphone销量', 
 
          subtext:'纯属虚构', 
 
          x:'center' 
 
        }, 
 
        tooltip: { 
 
          trigger:'item' 
 
        }, 
 
        legend: { 
 
          orient:'vertical', 
 
          x:'left', 
 
          data: ['iphone3','iphone4','iphone5'] 
 
        }, 
 
        dataRange: { 
 
          min:0, 
 
          max:2500, 
 
          text: ['高','低'],      
 
          calculable:true, 
 
          textStyle: { 
 
            color:'orange' 
 
          } 
 
        }, 
 
        toolbox: { 
 
          show:true, 
 
          orient:'vertical', 
 
          x:'right', 
 
          y:'center', 
 
          feature: { 
 
            mark:true, 
 
            dataView: { readOnly:false }, 
 
            restore:true, 
 
            saveAsImage:true 
 
          } 
 
        }, 
 
        series: [ 
 
    { 
 
      name:'iphone3', 
 
      type:'map', 
 
      mapType:'china', 
 
      selectedMode: 'single', 
 
      itemStyle: { 
 
        normal: { label: { show:true },color:'#ffd700' },// for legend 
 
        emphasis: { label: { show:true} } 
 
      }, 
 
      data: [ 
 
        { name:'北京',value:Math.round(Math.random() *1000) }, 
 
        { name:'天津',value:Math.round(Math.random() *1000) }, 
 
        { name:'上海',value:Math.round(Math.random() *1000) }, 
 
        { name:'重庆',value:Math.round(Math.random() *1000) }, 
 
        { name:'河北',value:Math.round(Math.random() *1000) }, 
 
        { name:'河南',value:Math.round(Math.random() *1000) }, 
 
        { name:'云南',value:Math.round(Math.random() *1000) }, 
 
        { name:'辽宁',value:Math.round(Math.random() *1000) }, 
 
        { name:'黑龙江',value:Math.round(Math.random() *1000) }, 
 
        { name:'湖南',value:Math.round(Math.random() *1000) }, 
 
        { name:'安徽',value:Math.round(Math.random() *1000) }, 
 
        { name:'山东',value:Math.round(Math.random() *1000) }, 
 
        { name:'新疆',value:Math.round(Math.random() *1000) }, 
 
        { name:'江苏',value:Math.round(Math.random() *1000) }, 
 
        { name:'浙江',value:Math.round(Math.random() *1000) }, 
 
        { name:'江西',value:Math.round(Math.random() *1000) }, 
 
        { name:'湖北',value:Math.round(Math.random() *1000) }, 
 
        { name:'广西',value:Math.round(Math.random() *1000) }, 
 
        { name:'甘肃',value:Math.round(Math.random() *1000) }, 
 
        { name:'山西',value:Math.round(Math.random() *1000) }, 
 
        { name:'内蒙古',value:Math.round(Math.random() *1000) }, 
 
        { name:'陕西',value:Math.round(Math.random() *1000) }, 
 
        { name:'吉林',value:Math.round(Math.random() *1000) }, 
 
        { name:'福建',value:Math.round(Math.random() *1000) }, 
 
        { name:'贵州',value:Math.round(Math.random() *1000) }, 
 
        { name:'广东',value:Math.round(Math.random() *1000) }, 
 
        { name:'青海',value:Math.round(Math.random() *1000) }, 
 
        { name:'西藏',value:Math.round(Math.random() *1000) }, 
 
        { name:'四川',value:Math.round(Math.random() *1000) }, 
 
        { name:'宁夏',value:Math.round(Math.random() *1000) }, 
 
        { name:'海南',value:Math.round(Math.random() *1000) }, 
 
        { name:'台湾',value:Math.round(Math.random() *1000) }, 
 
        { name:'香港',value:Math.round(Math.random() *1000) }, 
 
        { name:'澳门',value:Math.round(Math.random() *1000) } 
 
      ] 
 
    }, 
 
    { 
 
      name:'iphone4', 
 
      type:'map', 
 
      mapType:'china', 
 
      selectedMode: 'single', 
 
      itemStyle: { 
 
        normal: { label: { show:true },color:'#ff8c00' },// for legend 
 
        emphasis: { label: { show:true} } 
 
      }, 
 
      data: [ 
 
        { name:'北京',value:Math.round(Math.random() *1000) }, 
 
        { name:'天津',value:Math.round(Math.random() *1000) }, 
 
        { name:'上海',value:Math.round(Math.random() *1000) }, 
 
        { name:'重庆',value:Math.round(Math.random() *1000) }, 
 
        { name:'河北',value:Math.round(Math.random() *1000) }, 
 
        { name:'安徽',value:Math.round(Math.random() *1000) }, 
 
        { name:'新疆',value:Math.round(Math.random() *1000) }, 
 
        { name:'浙江',value:Math.round(Math.random() *1000) }, 
 
        { name:'江西',value:Math.round(Math.random() *1000) }, 
 
        { name:'山西',value:Math.round(Math.random() *1000) }, 
 
        { name:'内蒙古',value:Math.round(Math.random() *1000) }, 
 
        { name:'吉林',value:Math.round(Math.random() *1000) }, 
 
        { name:'福建',value:Math.round(Math.random() *1000) }, 
 
        { name:'广东',value:Math.round(Math.random() *1000) }, 
 
        { name:'西藏',value:Math.round(Math.random() *1000) }, 
 
        { name:'四川',value:Math.round(Math.random() *1000) }, 

        { name:'宁夏',value:Math.round(Math.random() *1000) }, 
 
        { name:'香港',value:Math.round(Math.random() *1000) }, 
        { name:'澳门',value:Math.round(Math.random() *1000) } 
 
      ] 
 
    }, 
 
    { 
 
      name:'iphone5', 
 
      type:'map', 
 
      mapType:'china', 
 
      selectedMode: 'single', 
 
      itemStyle: { 
 
        normal: { label: { show:true },color:'#da70d6' },// for legend 
 
        emphasis: { label: { show:true} } 
 
      }, 
 
      data: [ 
 
        { name:'北京',value:Math.round(Math.random() *1000) }, 
 
        { name:'天津',value:Math.round(Math.random() *1000) }, 
 
        { name:'上海',value:Math.round(Math.random() *1000) }, 
 
        { name:'广东',value:Math.round(Math.random() *1000) }, 
 
        { name:'台湾',value:Math.round(Math.random() *1000) }, 
 
        { name:'香港',value:Math.round(Math.random() *1000) }, 
 
        { name:'澳门',value:Math.round(Math.random() *1000) } 
 
      ] 
 
    } 
  ] 
      }; 
       //以下的这段代码主要是用来处理用户的选择,应用场景是可以做地图的交互,比如点击地图上的某一个省,获取相应的省的指标变化等。 
       //需要特别注意的是,如果需要点击某一省作地图的操作交互的话,还需要为series属性的每一项添加一个selectedMode属性,这里的属性值为 'single'即单选,也可多选 
  varecConfig= require('echarts/config'); 
      myChart.on(ecConfig.EVENT.MAP_SELECTED,function (param) { 
        varselected=param.selected; 
        varmapSeries=option.series[0]; 
        vardata= []; 
        varlegendData= []; 
        varname; 
        for (varp=0,len=mapSeries.data.length; p<len; p++) { 
          name=mapSeries.data[p].name; 
          mapSeries.data[p].selected=selected[name]; 
          if (selected[name]) { 
            alert(name); //这里只是简单的做一个事例说明,弹出用户所选的省,如需做其他的扩展,可以在这里边添加相应的操作  
 
          } 
        } 
      });         
      myChart.setOption(option); 
    } 
  ); 
  </script>

完成以上操作之后,效果如下图所示:

echart简介_动力节点Java学院整理 

LineChart

除了地图图表之外的其他的图标的使用方式都差不多。事实上其他的图表跟地图图表的区别在于对配置文件的引用。这里只做一个折线图的示例,其它的示例都是一样的。

<scripttype="text/javascript"> 
 
    require.config({ 
 
      paths: { 
 
        echarts:'./echarts/echarts', 
 
        'echarts/chart/bar':'./echarts/echarts',//这里需要注意的是除了mapchart使用的配置文件为echarts-map之外, 
其他的图形引用的配置文件都为echarts,这也是一般的图形跟地图的区别 
 
        'echarts/chart/line':'./echarts/echarts' 
 
      } 
 
    }); 
 
    require( 
 
    [ 
 
      'echarts', 
 
      'echarts/chart/bar', 
 
      'echarts/chart/line' 
 
    ], 
 
    function (ec) { 
 
      varmyChart=ecinit(documentgetElementById('main')); 
 
      option= { 
 
        tooltip: { 
 
          trigger:'axis' 
 
        }, 
 
        legend: { 
 
          data: ['邮件营销','联盟广告','视频广告','直接问','搜索引擎'] 
 
        }, 
 
        toolbox: { 
 
          show:true, 
 
          feature: { 
 
            mark:true, 
 
            dataView: { readOnly:false }, 
 
            magicType: ['line','bar'], 
 
            restore:true, 
 
            saveAsImage:true 
 
          } 
 
        }, 
 
        calculable:true, 
 
        xAxis: [ 
 
    { 
 
      type:'category', 
 
      boundaryGap:false, 
 
      data: ['周一','周二','周三','周四','周五','周六','周日'] 
 
    } 
 
  ], 
 
        yAxis: [ 
 
    { 
 
      type:'value', 
 
      splitArea: { show:true } 
 
    } 
 
  ], 
 
        series: [ 
 
    { 
 
      name:'邮件营销', 
 
      type:'line', 
 
      stack:'总量', 
 
      data: [120,132,101,134,90,230,210] 
 
    }, 
 
    { 
 
      name:'联盟广告', 
 
      type:'line', 
 
      stack:'总量', 
 
      data: [220,182,191,234,290,330,310] 
 
    }, 
 
    { 
 
      name:'视频广告', 
 
      type:'line', 
 
      stack:'总量', 
 
      data: [150,232,201,154,190,330,410] 
 
    }, 
 
    { 
 
      name:'直接访问', 
 
      type:'line', 
 
      stack:'总量', 
 
      data: [320,332,301,334,390,330,320] 
 
    }, 
 
    { 
 
      name:'搜索引擎', 
 
      type:'line', 
 
      stack:'总量', 
 
      data: [820,932,901,934,1290,1330,1320] 
 
    } 
 
  ] 
 
      };           
 
  
 
      myChart.setOption(option); 
 
    } 
 
  ); 
 
  </script> 
 
  
 
  
 
  <divid="main1"style="height:500px;border:1px solid #ccc;padding:10px;"></div>   
 
  <scripttype="text/javascript"> 
 
    require.config({ 
 
      paths: { 
 
        echarts:'./echarts/echarts', 
 
        'echarts/chart/bar':'./echarts/echarts', 
 
        'echarts/chart/line':'./echarts/echarts' 
 
      } 
 
    }); 
 
    require( 
 
    [ 
 
      'echarts', 
 
      'echarts/chart/bar', 
 
      'echarts/chart/line' 
 
    ], 
 
    function (ec) { 
 
      varmyChart=ecinit(documentgetElementById('main1')); 
 
      option= { 
 
        title: { 
 
          text:'未来一周气温变化', 
 
          subtext:'纯属虚构' 
 
        }, 
 
        tooltip: { 
 
          trigger:'axis' 
 
        }, 
 
        legend: { 
 
          data: ['最高气温'最低气温'] 
 
        }, 
 
        toolbox: { 
 
          show:true, 
 
          feature: { 
 
            mark:true, 
 
            dataView: { readOnly:false }, 
 
            magicType: ['line','bar'], 
 
            restore:true, 
 
            saveAsImage:true 
 
          } 
 
        }, 
 
        calculable:true, 
 
        xAxis: [ 
 
    { 
 
      type:'category', 
 
      boundaryGap:false, 
 
      data: ['周一','周二','周三','周四','周五','周六','周日'] 
 
    } 
 
  ], 
 
        yAxis: [ 
 
    { 
 
      type:'value', 
 
      axisLabel: { 
 
        formatter:'{value} ' 
 
      }, 
 
      splitArea: { show:true } 
 
    } 
 
  ], 
 
        series: [ 
 
    { 
 
      name:'最高气温', 
 
      type:'line', 
 
      itemStyle: { 
 
        normal: { 
 
          lineStyle: { 
 
            shadowColor:'rgba(0,0,0,4)' 
 
          } 
 
        } 
 
      }, 
 
      data: [11,11,15,13,12,13,10] 
 
    }, 
 
    { 
 
      name:'最低气温', 
 
      type:'line', 
 
      itemStyle: { 
 
        normal: { 
 
          lineStyle: { 
 
            shadowColor:'rgba(0,0,0,4)' 
 
          } 
 
        } 
 
      }, 
 
      data: [-2,1,2,5,3,2,0] 
 
    } 
 
  ] 
 
      };           
 
      myChart.setOption(option); 
 
    } 
 
  ); 
 
  </script> 
 
  
 
  
 
  <divid="main2"style="height:500px;border:1px solid #ccc;padding:10px;"></div>   
 
  <scripttype="text/javascript"> 
 
    require.config({ 
 
      paths: { 
 
        echarts:'./echarts/echarts', 
 
        'echarts/chart/bar':'./echarts/echarts', 
 
        'echarts/chart/line':'./echarts/echarts' 
 
      } 
 
    }); 
 
    require( 
 
    [ 
 
      'echarts', 
 
      'echarts/chart/bar', 
 
      'echarts/chart/line' 
 
    ], 
 
    function (ec) { 
 
      varmyChart=ec.init(document.getElementById('main2')); 
 
      option= { 
 
        title: { 
 
          text:'某楼盘销售情况', 
 
          subtext:'纯属虚构' 
 
        }, 
 
        tooltip: { 
 
          trigger:'axis' 
 
        }, 
 
        legend: { 
 
          data: ['意向','预购','成交'] 
 
        }, 
 
        toolbox: { 
 
          show:true, 
 
          feature: { 
 
            mark:true, 
 
            dataView: { readOnly:false }, 
 
            magicType: ['line','bar'], 
 
            restore:true, 
 
            saveAsImage:true 
 
          } 
 
        }, 
 
        calculable:true, 
 
        xAxis: [ 
 
    { 
 
      type:'category', 
 
      boundaryGap:false, 
 
      data: ['周','周二','周三','周四','周五','周六','周日'] 
 
    } 
 
  ], 
 
        yAxis: [ 
 
    { 
 
      type:'value' 
 
    } 
 
  ], 
 
        series: [ 
 
    { 
 
      name:'成交', 
 
      type:'line', 
 
      smooth:true, 
 
      itemStyle: { normal: { areaStyle: { type:'default'}} }, 
 
      data: [10,12,21,54,260,830,710] 
 
    }, 
 
    { 
 
      name:'预购', 
 
      type:'line', 
 
      smooth:true, 
 
      itemStyle: { normal: { areaStyle: { type:'default'}} }, 
 
      data: [30,182,434,791,390,30,10] 
 
    }, 
 
    { 
 
      name:'意向', 
 
      type:'line', 
 
      smooth:true, 
 
      itemStyle: { normal: { areaStyle: { type:'default'}} }, 
 
      data: [1320,1132,601,234,120,90,20] 
 
    } 
 
  ] 
 
      };           
 
      myChart.setOption(option); 
 
    } 
 
  ); 
 
  </script>

完成以上操作之后效果图如下:

 echart简介_动力节点Java学院整理

Javascript 相关文章推荐
客户端限制只能上传jpg格式图片的js代码
Dec 09 Javascript
单击复制文字兼容各浏览器的完美解决方案
Jul 04 Javascript
jquery $.fn $.fx是什么意思有什么用
Nov 04 Javascript
instanceof和typeof运算符的区别详解
Jan 06 Javascript
JavaScript编程中的Promise使用大全
Jul 28 Javascript
js数组操作方法总结(必看篇)
Nov 22 Javascript
Bootstrap框架实现广告轮播效果
Nov 28 Javascript
js实现类bootstrap模态框动画
Feb 07 Javascript
关于Bootstrap按钮组件消除黄框的方法
May 19 Javascript
Vue 进阶之路(三)
Apr 18 Javascript
Nuxt的动态路由和参数校验操作
Nov 09 Javascript
如何正确解决VuePress本地访问出现资源报错404的问题
Dec 03 Vue.js
Javascript中this关键字指向问题的测试与详解
Aug 11 #Javascript
使用JS编写的随机抽取号码的小程序
Aug 11 #Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
Mar 28 #Javascript
Mobile Web开发基础之四--处理手机设备的横竖屏问题
Aug 11 #Javascript
Vue.js仿微信聊天窗口展示组件功能
Aug 11 #Javascript
Node.js服务器开启Gzip压缩教程
Aug 11 #Javascript
JS SetInterval 代码实现页面轮询
Aug 11 #Javascript
You might like
php基于表单密码验证与HTTP验证用法实例
2015/01/06 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
thinkphp诸多限制条件下如何getshell详解
2020/12/09 PHP
ExtJS 2.0实用简明教程 之获得ExtJS
2009/04/29 Javascript
js自动下载文件到本地的实现代码
2013/04/28 Javascript
jquery 缓存问题的几个解决方法
2013/11/11 Javascript
在myeclipse中如何加入jquery代码提示功能
2014/06/03 Javascript
javascript的变量、传值、传址、参数之间关系
2015/07/26 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
AngularJS 面试题集锦
2016/09/06 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
基于AngularJS实现的工资计算器实例
2017/06/16 Javascript
node.js + socket.io 实现点对点随机匹配聊天
2017/06/30 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
小程序实现带年月选取效果的日历
2018/06/27 Javascript
关于引入vue.js 文件的知识点总结
2020/01/28 Javascript
利用Python获取赶集网招聘信息前篇
2016/04/18 Python
Python 快速实现CLI 应用程序的脚手架
2017/12/05 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
pycharm设置注释颜色的方法
2018/05/23 Python
win7下python3.6安装配置方法图文教程
2018/07/31 Python
利用python将图片版PDF转文字版PDF
2019/05/03 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
Pytorch 实现sobel算子的卷积操作详解
2020/01/10 Python
使用python实现CGI环境搭建过程解析
2020/04/28 Python
Kmeans均值聚类算法原理以及Python如何实现
2020/09/26 Python
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
详解HTML5中的Communication API基本使用方法
2016/01/29 HTML / CSS
linux下进程间通信的方式
2014/12/23 面试题
英语专业毕业生自荐信
2013/10/28 职场文书
写给领导的感谢信
2015/01/22 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书