百度echart算是百度针对数据展示做的一个图表插件吧,一般我们使用都不是问题,主要还是对于对动态数据的解析。我这里使用饼状图,和柱状图为例:

首先,我们需要定义一个绘图的容器:(class是我自己定义的,这个容器用一个div就可以)

<div class="fm_box pd-10 border-grey" id="shanxing" style="height: 500px;"></div>
 <div class="fm_box pd-10 border-grey" id="zhuzhuang" style="height: 500px;"></div>

然后需要引入我们的echart.min.js.

准备工作做好后,下面就是我们初始化图表的时候了。

首先我们需要定义两个mychart分别作为我们的扇形图和柱状图

var myChart = echarts.init(document.getElementById('shanxing'));
var myChart2 = echarts.init(document.getElementById('zhuzhuang'));

然后分别定义option:就是数据格式的写入:(这里因为有两个图,数据分别用option ,option2来表示)

option = {
title : {
text: '某站点用户访问来源',
x:'center'
},
tooltip : {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
legend: {
orient : 'vertical',
x : 'left',
data:[]
// '直接访问','邮件营销','联盟广告','视频广告','搜索引擎'
},
toolbox: {
show : true,
feature : {
mark : {show: true},
dataView : {show: true, readOnly: false},
magicType : {
show: true,
type: ['pie', 'funnel'],
option: {
funnel: {
x: '25%',
width: '50%',
funnelAlign: 'left',
max: 1548
}
}
},
restore : {show: true},
saveAsImage : {show: true}
}
},
calculable : true,
series : [
{
name:'访问来源',
type:'pie',
radius : '55%',
center: ['50%', '55%'],
data:[
// {value:335, name:'直接访问'},
// {value:310, name:'邮件营销'},
// {value:234, name:'联盟广告'},
// {value:135, name:'视频广告'},
// {value:1548, name:'搜索引擎'}
]
}
]
};
option2 = {
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 : 'category',
data : []
}
],
yAxis : [
{
type : 'value'
}
],
series : [
{
name:'项目',
type:'bar',
data:[], } ]
};

大家可以看到,我把series里面的data注释掉,或者删除了,因为图表我们一般用来展示动态数据,监控数据变化,固定的图表就没有我写这个博文的意义了。

好的接下来,我们模拟一个json文件。用作我们的数据。很简单的数据格式。

{"result":1,"msg":null,"object":[["网站","微博","微信","论坛","新闻","政务","报刊"],[10,20,180,995,450,250,360]],"totalPage":0,"sum":0}

这个json是一个普通的数据。我们比方说,在后台拿到的就是这么一串json、接下来就是如何解析,并且放入图表绘制的方法中。

我们需要先做请求。

$.ajax({
type: "get",
async: true, //同步执行
url: "tets.json",
dataType: "json", //返回数据形式为json
success: function(data){
console.log(data.object[0].length);
for(var i= 0,len=data.object[0].length;i<len;i++){
var json={};
var data2=data.object[0];
json.name=data.object[0][i];
json.value=data.object[1][i];
option.series[0].data[i]=json;
option.legend.data=data.object[0];
option2.xAxis[0].data=data.object[0];
option2.series[0].data=data.object[1];
}
myChart.clear();
myChart.hideLoading();
myChart.setOption(option);
myChart2.clear();
myChart2.hideLoading();
myChart2.setOption(option2);// 使用刚指定的配置项和数据显示图表。
},
error: function(errorMsg) {
alert("图表请求数据失败啦!");
}
});

其中的url是我们请求数据的接口,当我们请求到数据之后,对数据进行遍历。大家可能看到我在其中定义了一个对象,因为我们根据请求到的数据来看,并不太符合我们的要求,所以我们需要进行数据的转换。

详细的不再多说,自己参考。

我们来说说myChart.clear();myChart.hideLoading();myChart.setOption(option);

第一个是在每一次绘制图标前,做一次初始化,清空画布,目的是为了防止数据没有清理干净,会存在缓存或者什么。这样会影响绘图效果。

第二个是图片绘制的时候一个类似加载的动画效果。还有个myChart.showLoading();

第三个是绘制!相当于调用所有的配置,开始绘制。上边的容器,数据的写入,都是为了准备,而myChart.setOption();才是真正的绘制,使用刚指定的配置项和数据显示图表。

下边是除了容器,配置的完整代码:

//echart

    var myChart = echarts.init(document.getElementById('qinggan'));
var myChart2 = echarts.init(document.getElementById('bar'));
option = {
title : {
text: '某站点用户访问来源',
x:'center'
},
tooltip : {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
legend: {
orient : 'vertical',
x : 'left',
data:[]
// '直接访问','邮件营销','联盟广告','视频广告','搜索引擎'
},
toolbox: {
show : true,
feature : {
mark : {show: true},
dataView : {show: true, readOnly: false},
magicType : {
show: true,
type: ['pie', 'funnel'],
option: {
funnel: {
x: '25%',
width: '50%',
funnelAlign: 'left',
max: 1548
}
}
},
restore : {show: true},
saveAsImage : {show: true}
}
},
calculable : true,
series : [
{
name:'访问来源',
type:'pie',
radius : '55%',
center: ['50%', '55%'],
data:[
// {value:335, name:'直接访问'},
// {value:310, name:'邮件营销'},
// {value:234, name:'联盟广告'},
// {value:135, name:'视频广告'},
// {value:1548, name:'搜索引擎'}
]
}
]
};
myChart.hideLoading();
myChart.setOption(option); option2 = {
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 : 'category',
data : []
}
],
yAxis : [
{
type : 'value'
}
],
series : [
{
name:'项目',
type:'bar',
data:[], } ]
};
//情感分析图
$.ajax({
type: "get",
async: true, //同步执行
url: "tets.json",
dataType: "json", //返回数据形式为json
success: function(data){
console.log(data.object[0].length);
for(var i= 0,len=data.object[0].length;i<len;i++){
var json={};
var data2=data.object[0];
json.name=data.object[0][i];
json.value=data.object[1][i];
option.series[0].data[i]=json;
option.legend.data=data.object[0];
option2.xAxis[0].data=data.object[0];
option2.series[0].data=data.object[1];
}
myChart.clear();
myChart.hideLoading();
myChart.setOption(option);
myChart2.clear();
myChart2.hideLoading();
myChart2.setOption(option2);// 使用刚指定的配置项和数据显示图表。
},
error: function(errorMsg) {
alert("图表请求数据失败啦!");
}
});

好了,基本就是这些,重点不是在显示,是在你如何解析接收到的后台数据,进行数据的配置。

这里才是重点,如果你只是写个假数据,做个写死的图表。

百度echart使用心得,百度图表。的更多相关文章

  1. 百度echart如何动态生成图表

    百度echart如何动态生成图表 一.总结 一句话总结: clear hideloading setOption 主要是下面三行代码: myChart.clear(); //清空画布myChart.h ...

  2. 通过百度地图API将百度坐标转换成GPS经纬度

    百度地图API链接:http://developer.baidu.com/map/index.php?title=webapi/guide/changeposition 百度地图API中,有GPS坐标 ...

  3. 网页嵌入百度地图和使用百度地图api自定义地图的详细步骤

    在网页中插入百度地图 如果想在自己的网页上面加入百度地图的话,可以用百度地图的api.具体使用方法如下: 第一步:进入百度创建地图的网站http://api.map.baidu.com/lbsapi/ ...

  4. 【百度地图API】百度API卫星图使用方法和卫星图对比工具

    原文:[百度地图API]百度API卫星图使用方法和卫星图对比工具 百度地图API推出卫星图接口也有一个月啦~ 本文除了介绍如何使用百度地图API来操作卫星图外,还顺带制作了个卫星图对比工具. 一.百度 ...

  5. 禁止百度转码和百度快照缓存的META声明

    今天手机 site 中国博客联盟时,发现网被转码了,虽然这个网站没做移动站,但是我也不希望被百度转码,因为这相当于拦截了所有来自手机的流量.下面说一下禁止百度转码和禁止百度快照缓存的方法. 一.禁止百 ...

  6. 百度echart初用总结

    1.先下载echarts.js.我在百度下载的是 echarts-2.2.7 (from Baidu).压缩包里面的build->dist中的echarts.js或者echarts-all.js ...

  7. 百度 Echart 的使用

    百度 Echarts 的使用 一.Echarts 简介 官方网站:http://echarts.baidu.com/ 下载地址:http://echarts.baidu.com/download.ht ...

  8. 百度api使用心得体会

    最近项目中在使用百度地图api,对于其中的一些有用的点做一些归纳整理,如有不对的地方,欢迎各位大神纠正指出. 一定要学会查找百度地图api提供的类参考网站:http://lbsyun.baidu.co ...

  9. 百度Echart 地图

    使用百度地图做一个全国地图数据分析的功能,如下图 代码 <%@ Page Language="C#" AutoEventWireup="true" Cod ...

随机推荐

  1. maven web 项目中启动报错java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener

    环境:Groovy/Grails Tool Suite 3.1.0.RELEASE(BASED ON ECLIPSE JUNO 3.8.1).JDK1.6.Maven3.05.Tomcat6 错误描述 ...

  2. hadoop 集群跑的时候用到hbasejar 文件的引用问题

    1. 创建软连接 ln -s /home/hadoop/bigdater/hbase-0.98.6-cdh5.3.6/conf/hbase-site.xml ./hbase-site.xml(记得这里 ...

  3. [BZOJ 3191][JLOI 2013]卡牌游戏

    觉得这题很有必要讲一下! 现在发现在做概率题,基本是向 dp 和 马尔可夫链 靠齐 但是这一题真是把我坑了,因为状态太多,马式链什么的直接死了 我一开始的想法就是用 f[i][j] 表示剩余 i 个人 ...

  4. Web应用功能测试测试点

    做了几年的功能测试,也经手了好几个Web应用的项目,在做项目当中积累了一些经验.在这里我对通用一些功能模块的测试点做个记录,一来梳理一下测试用例设计的思路,以便加快相似项目的测试用例的设计,二来有利于 ...

  5. MySQL 5.7 并行复制实现原理与调优

    MySQL 5.7并行复制时代 众所周知,MySQL的复制延迟是一直被诟病的问题之一,然而在Inside君之前的两篇博客中(1,2)中都已经提到了MySQL 5.7版本已经支持“真正”的并行复制功能, ...

  6. 如何比较两个SQL数据库的字段差别。

    程序好几个版本了,数据也弄出好好几版本,这下好了,原程序要升级,当然数据库也要升,可是里面已经有了大量的数据了,这时候怎么办.写了个存储过程来解决,一目了然. 因为2005及以上的数据库已经没有表sy ...

  7. rake :You have already activated rake 10.1.0

    rake aborted! You have already activated rake 10.1.0, but your Gemfile requires rake 10.0.3. Using b ...

  8. NC57银行档案和客商银行账号为建行04 UPDATE

    第二步 银行档案 update bd_bankdoc set bankdoccode='04N'|| bankdoccode , pk_banktype='0001ZZ1000000001OCUD' ...

  9. Python torndoa mysql 模块安装

    pip install torndb pip install pip install mysql-python #不支持3.x版本 ln -s /usr/local/mysql/lib/libmysq ...

  10. Stanford NLP学习笔记:7. 情感分析(Sentiment)

    1. 什么是情感分析(别名:观点提取,主题分析,情感挖掘...) 应用: 1)正面VS负面的影评(影片分类问题) 2)产品/品牌评价: Google产品搜索 3)twitter情感预测股票市场行情/消 ...