可按Ctrl+D收藏 蚂蚁资源网

蚂蚁资源网

echarts 源码(echarts介绍)

  • 全部评论(3)
  • 阿里
  • 1.客户端通过ajax发送请求<br>先绘制一个最简单的Echarts图表:<br>(这里就直接贴上代码了,直接用的是官网教程里异步数据加载和更新里的代码)<br>&lt;!DOCTYPEhtmlPUBLIC&quot;-//W3C//DTDHTML4.01Transitional//EN&quot;&quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;<br>&lt;htmllang=&quot;zh-CN&quot;&gt;<br>&lt;head&gt;<br>&lt;metahttp-equiv=&quot;Content-Type&quot;content=&quot;text/html;charset=UTF-8&quot;&gt;<br>&lt;title&gt;ECharts&lt;/title&gt;<br><br>&lt;!--引入echarts.js--&gt;<br>&lt;scripttype=&quot;text/javascript&quot;src=&quot;echarts.min.js&quot;&gt;&lt;/script&gt;<br>&lt;!--引入jquery.js--&gt;<br>&lt;scripttype=&quot;text/javascript&quot;src=&quot;jquery-1.12.3.js&quot;&gt;&lt;/script&gt;<br>&lt;/head&gt;<br><br>&lt;body&gt;<br>&lt;!--为ECharts准备一个具备大小(宽高)的Dom--&gt;<br>&lt;divid=&quot;main&quot;style=&quot;width:600px;height:400px;&quot;&gt;&lt;/div&gt;<br><br>&lt;scripttype=&quot;text/javascript&quot;&gt;<br><br>varmyChart=echarts.init(document.getElementById('main'));<br>//显示标题,图例和空的坐标轴<br>myChart.setOption({<br>title:{<br>text:'异步数据加载示例'<br>},<br>tooltip:{},<br>legend:{<br>data:['销量']<br>},<br>xAxis:{<br>data:[]<br>},<br>yAxis:{},<br>series:[{<br>name:'销量',<br>type:'bar',<br>data:[]<br>}]<br>});<br><br>&lt;/script&gt;<br><br>&lt;/body&gt;<br>&lt;/html&gt;<br>看到了吧,现在option中的xAxis和yAxis里的data都是空值。待会儿我们会用从服务器取回的数据去”填满“它。<br>下面贴上补充了ajax部分的完整前端代码:<br>&lt;!DOCTYPEhtmlPUBLIC&quot;-//W3C//DTDHTML4.01Transitional//EN&quot;&quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;<br>&lt;htmllang=&quot;zh-CN&quot;&gt;<br>&lt;head&gt;<br>&lt;metahttp-equiv=&quot;Content-Type&quot;content=&quot;text/html;charset=UTF-8&quot;&gt;<br>&lt;title&gt;ECharts&lt;/title&gt;<br><br>&lt;!--引入echarts.js--&gt;<br>&lt;scripttype=&quot;text/javascript&quot;src=&quot;echarts.min.js&quot;&gt;&lt;/script&gt;<br>&lt;!--引入jquery.js--&gt;<br>&lt;scripttype=&quot;text/javascript&quot;src=&quot;jquery-1.12.3.js&quot;&gt;&lt;/script&gt;<br>&lt;/head&gt;<br><br>&lt;body&gt;<br>&lt;!--为ECharts准备一个具备大小(宽高)的Dom--&gt;<br>&lt;divid=&quot;main&quot;style=&quot;width:600px;height:400px;&quot;&gt;&lt;/div&gt;<br><br>&lt;scripttype=&quot;text/javascript&quot;&gt;<br><br>varmyChart=echarts.init(document.getElementById('main'));<br>//显示标题,图例和空的坐标轴<br>myChart.setOption({<br>title:{<br>text:'异步数据加载示例'<br>},<br>tooltip:{},<br>legend:{<br>data:['销量']<br>},<br>xAxis:{<br>data:[]<br>},<br>yAxis:{},<br>series:[{<br>name:'销量',<br>type:'bar',<br>data:[]<br>}]<br>});<br><br>myChart.showLoading();//数据加载完之前先显示一段简单的loading动画<br><br>varnames=[];//类别数组(实际用来盛放X轴坐标值)<br>varnums=[];//销量数组(实际用来盛放Y坐标值)<br><br>$.ajax({<br>type:&quot;post&quot;,<br>async:true,//异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)<br>url:&quot;TestServlet&quot;,//请求发送到TestServlet处<br>data:{},<br>dataType:&quot;json&quot;,//返回数据形式为json<br>success:function(result){<br>//请求成功时执行该函数内容,result即为服务器返回的json对象<br>if(result){<br>for(vari=0;i&lt;result.length;i++){<br>names.push(result[i].name);//挨个取出类别并填入类别数组<br>}<br>for(vari=0;i&lt;result.length;i++){<br>nums.push(result[i].num);//挨个取出销量并填入销量数组<br>}<br>myChart.hideLoading();//隐藏加载动画<br>myChart.setOption({//加载数据图表<br>xAxis:{<br>data:names<br>},<br>series:[{<br>//根据名字对应到相应的系列<br>name:'销量',<br>data:nums<br>}]<br>});<br><br>}<br><br>},<br>error:function(errorMsg){<br>//请求失败时执行该函数<br>alert(&quot;图表请求数据失败!&quot;);<br>myChart.hideLoading();<br>}<br>})<br><br>&lt;/script&gt;<br><br>&lt;/body&gt;<br>&lt;/html&gt;<br><br>2.服务器端Servlet接收请求<br>客户端的请求url是’TestServlet‘,那我们得先在web.xml配置以下映射:<br>&lt;servlet&gt;<br>&lt;servlet-name&gt;TestServlet&lt;/servlet-name&gt;<br>&lt;servlet-class&gt;test.TestServlet&lt;/servlet-class&gt;<br>&lt;/servlet&gt;<br>&lt;servlet-mapping&gt;<br>&lt;servlet-name&gt;TestServlet&lt;/servlet-name&gt;<br>&lt;url-pattern&gt;/TestServlet&lt;/url-pattern&gt;<br>&lt;/servlet-mapping&gt;<br><br>然后就来着手写处理客户端请求的TestServlet啦!<br>3.生成json数据并返回给客户端<br>生成Json数据要用到额外的jar包,这里我使用的jackson,json-lib2010年就没有再更新了…(2016-5-3日更:发现Google出品的Gson也蛮好用的,重点是很小巧,只需引入一个jar就搞定,用法也很简单)<br>简单介绍一下jackson的用法:<br>①:先去http://mvnrepository.com/下载jackson-core.jar,jackson-annotations.jar,jackson-databind.jar(都是2.x版本,jackson官网不知为何不提供服务了…这三个jar让我一阵好找)<br>②:在项目的项目WEB-INF/lib下引入这三个jar<br>然后就可以在TestServlet里使用jackson提供的工具类了。(关于jackson的详细用法,这里贴一下官网教程:http://wiki.fasterxml.com/JacksonInFiveMinutes)<br>TestServlet代码如下:<br>packagetest;<br><br>importjava.io.IOException;<br>importjava.util.*;<br><br>importjavax.servlet.ServletException;<br>importjavax.servlet.http.HttpServlet;<br>importjavax.servlet.http.HttpServletRequest;<br>importjavax.servlet.http.HttpServletResponse;<br><br>importcom.fasterxml.jackson.databind.ObjectMapper;<br><br>publicclassTestServletextendsHttpServlet{<br><br>@Override<br>protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{<br>doPost(req,resp);<br>}<br><br>@Override<br>protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{<br><br>List&lt;Product&gt;list=newArrayList&lt;Product&gt;();<br><br>//这里把“类别名称”和“销量”作为两个属性封装在一个Product类里,每个Product类的对象都可以看作是一个类别(X轴坐标值)与销量(Y轴坐标值)的集合<br>list.add(newProduct(&quot;衬衣&quot;,10));<br>list.add(newProduct(&quot;短袖&quot;,20));<br>list.add(newProduct(&quot;大衣&quot;,30));<br><br>ObjectMappermapper=newObjectMapper();//提供java-json相互转换功能的类<br><br>Stringjson=mapper.writeValueAsString(list);//将list中的对象转换为Json格式的数组<br><br>//System.out.println(json);<br><br>//将json数据返回给客户端<br>response.setContentType(&quot;text/html;charset=utf-8&quot;);<br>response.getWriter().write(json);<br>}<br><br>TestServlet类中用到的自定义的Product类代码如下:<br><br>packagetest;<br><br>publicclassProduct{<br><br>privateStringname;//类别名称<br>privateintnum;//销量<br><br>publicProduct(Stringname,intnum){<br>this.name=name;<br>this.num=num;<br>}<br><br>publicStringgetName(){<br>returnname;<br>}<br>publicvoidsetName(Stringname){<br>this.name=name;<br>}<br>publicintgetNum(){<br>returnnum;<br>}<br>publicvoidsetNum(intnum){<br>this.num=num;<br>}<br><br>}<br><br>4.客户端接收数据后显示<br>客户端接受服务器数据并解析后,就可以正常显示图表数据了:
  • 2021-02-24 22:05:01
  • 萨满祭司
  • var json='[{name : "广州", value : 38}]';//后台返回的json串格式 var data = eval('('+json+')');//这个就是想要的格式 alert(data[0]['name']);
  • 2021-02-12 01:26:24
  • dfgj
  • echarts 地图官方实例,既然是官方实例为什么找不到地方下载!改好页面代码发现还缺JS文件,配置参数等等,官方实例贴出的是关键代码,并不是全部代码....echarts.js这个文件你要下载并引用的.截图上的第一个例子我最近搞过,看一下echarts的API和配置项手册,其实不难理解.我之前也没有接触过,上手不难.
  • 2021-02-12 01:26:24
  • 商品推荐