1、在我们开发程序中,经常会用到生成一些报表,比方说饼状图,条形图,折线图等。不多说了,直接上封装好的代码,如下Echarts.js所示

以下代码是封装在Echarts.js文件中

/**

* Created by Administrator on 2015/8/7.
*/
var charec;
// 路径配置
require.config({
paths: {
echarts: 'http://echarts.baidu.com/build/dist'
}
});
// 按需加载所需图表
require(
[
'echarts',
'echarts/chart/bar', //按需加载条形图
'echarts/chart/line', //按需加载折线图
'echarts/chart/funnel',
'echarts/chart/pie', //按需要加载饼图
'echarts/chart/gauge',
'echarts/chart/map',
], function (ec) {
charec = ec;
}
);


/**
* 创建饼图js
* data[0] 呈现饼图的dom元素id
* data[1] 统计图的主标题
* data[2] 图例
* data[3] 自定义名字
* data[4] 呈现的统计图数据
* @param data
* ["pieArea","活动2情况统计图",["活动1","活动2","活动3"],"活动详情",
* [{"value":"5","name":"活动1"},{"value":"3","name":"活动2"},{"value":"8","name":"活动3"}]]
*
*/
function createChart(data) {
var myChart = charec.init(document.getElementById(data[0]));
var option = {
title: {
text: data[1],
subtext: '',
x: 'center',
},
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b}:{c} ({d}%)"
},
legend: {
orient: 'vertical',
data: data[2]
},
toolbox: {
show: false,
feature: {
mark: false,
dataView: {show: true, readOnly: false},
magicType: ['line', 'bar', 'pie', 'gauge'],
restore: true
}
},
calculable: true,


series: [{
name: data[3],
type: 'pie',
radius: '50%',
center: ['50%', '50%'],
data: data[4],
itemStyle: {
normal: {label: {show: true, formatter: '{b}:{c}人 ({d}%)'}},
labelLine: {label: {show: true}}
}
}]
};
myChart.setOption(option);


}


/**
* 创建条形图或者折线图
* data[0] 呈现饼图的dom元素id
* data[1] 统计图的主标题
* data[2] 图例
* data[3] 自定义名字
* data[4] 呈现的统计图数据
* data[5] X轴数据
* data[6] 图表类型 bar line
* @param data
*/
// $pieData = array(
// "pieArea", //呈现饼图的dom元素id
// "某地区蒸发量和降水量", //标题
// array("蒸发量", "降水量"), //lend 图例
// "蒸发量或者降水量", //自定义名称
// array(2.6,5.9,6.8,3.1,1.2,8.9),
// array("1月", "2月", "3月","4月","5月","6月"),
// "line"
// );
function createBarChart(data) {
var myChart = charec.init(document.getElementById(data[0]));
var option = {
title: {
text: data[1],
subtext: '',
x: 'center',
},
tooltip: {
trigger: 'axis'
},
legend: {
data: data[2],
orient: 'vertical',
x: '150',
},
toolbox: {
show: false,
feature: {
mark: {show: true},
dataView: {show: true, readOnly: false},
magicType: {show: true, type: ['line', 'bar', 'pie', 'gauge']},
restore: {show: true},
saveAsImage: {show: true}
}
},
calculable: true,
xAxis: [
{
type: 'category',
data: data[5]
}
],
yAxis: [
{
type: 'value'
}
],
series: [
{
name: data[3],
type: data[6],
data: data[4]
}
]
};
myChart.setOption(option);
}

2、如何使用

在前台页面引用以下js文件

<script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
<script src="http://echarts.baidu.com/build/dist/echarts.js"></script>
<script type="text/javascript" src="/Static/Js/Echarts.js"></script> -----这个文件就是上面封装的js代码

3、传送数据

前台js代码中,调用 createChart(data) 方法,并把data数据传递过去就行。

其中data的 json 数据格式如下所示,可以转换为一个数组传送过去

[
"pieArea",
"XX广州上海活动情况统计图",
[
"未参加活动",
"参与活动未回答问卷",
"参与活动并回答问卷"
],
"会员活动详情",
[
{
"value": "3",
"name": "未参加活动"
},
  {
"value": "5",
"name": "参与活动未回答问卷"
},
  {
"value": "10",
"name": "参与活动并回答问卷"
}
  ] 
] --------以下是数组格式
$data=array(
0=>array("name"=>"未参加活动","value"=>"3"),
1=>array("name"=>"参加活动未填问卷","value"=>"5")
)
$pieData = array(
"pieArea", //呈现饼图的dom元素id
"XX活动情况统计图", //标题
array("未参加活动", "参与活动未回答问卷", "参与活动并回答问卷"), //lend 图例
"会员活动详情", //自定义名称
$data //统计数据
);
把$pieData 数据传递过去就行。
 createChart(data);

4、哈哈哈,就这样,就完成了,十分简单的。

Echarts生成饼状图、条形图以及线形图 JS封装的更多相关文章

  1. php 生成饼状图,折线图,条形图 通用类 2

    生成饼状图,折线图,条形图通用的php类,这里使用的是国外的 HighCharts,前台页面别忘了调用HighCahrt  js HighCharts中文网站  http://www.hcharts. ...

  2. php 生成饼状图,折线图,条形图 通用类

    生成饼状图,折线图,条形图通用的php类,这里使用的是百度 Echart. Echart 官方网站  http://echarts.baidu.com/ <?php class Echarts ...

  3. JFreeChart框架中生成饼状图上怎样显示数据 [问题点数:40分,结帖人GreenLawn]

    我用JFreeChart框架生成饼状图,但想把数据信息在饼图上显示,是在饼图内部(即圆内)显示!怎样实现啊??  去掉lablepieplot.setLabelGenerator(null);去掉线p ...

  4. vue中使用echarts画饼状图

    echarts的中文文档地址:https://echarts.baidu.com/tutorial.html#5%20%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B%20EC ...

  5. PHP实现动态生成饼状图 (转载)

    <?php //变量定义,画椭圆弧时的角度大小 define("ANGLELENGTH", 10); /** * 绘制图片 * @param $title 3D图的标题 * ...

  6. PHP实现动态生成饼状图、柱状图和折线图(转载)

    PHP在图像操作方面的表现非常出色,我们只需借助可以免费得到的GD库便可以轻松实现图.表勾画.下面将分别介绍PHP实现的饼状图.折线图和柱状图以 及他们的使用方法,这几段代码的特点就是不需要再把它们复 ...

  7. echarts中饼状图数据太多进行翻页

    echarts饼状图数据太多 echarts 饼状图内容太多怎么处理 有些时候,我们饼状图中echarts的数据可能会很多. 这个时候展示肯定会密密麻麻的.导致显示很凌乱 我们需要'翻页'类似表格展示 ...

  8. Winform 后台生成饼状图并保存为图片

    .cs代码如下 string ldt_picPath = System.Windows.Forms.Application.StartupPath + @"Pic\" + Item ...

  9. echarts pie饼状图绑定点击事件

    var valueData = [ {value: 33,name: '诊所'}, {value: 29,name: '汽车服务相关'}, {value: 27, name: '洗衣店'}, {val ...

随机推荐

  1. Ubuntu14.04 64bit下Caffe + CUDA 6.5安装详细步骤

    不多说,直接上干货! 笔者花了很长时间才装完,主要是cuda安装和opencv安装比较费劲,cuda找不到32位的安装包只好重装64位的ubuntu系统,opencv 也是尝试了很久才解决,这里建议用 ...

  2. MongoDB相关的一些技术文章

    安装 win7下安装和配置MongoDB的总结---阿冬专栏

  3. haproxy tcp 反向代理

    配置如下: global log 127.0.0.1 local3 warning nbproc 1 maxconn 65535 daemon defaults log global option d ...

  4. caioj1421&&hdu2167: [视频]【状态压缩】选数

    %hz大佬..这道题的状态压缩简直匪夷所思(其实是我孤陋寡闻,而且我以前的博客竟然写了这题..水啊) 嗯这题可以发现,我们可以用一个二进制表示一行的状态,1表示选0反之,可以发现行与行之间可选的范围是 ...

  5. YTU 2435: C++ 习题 输出日期时间--友元函数

    2435: C++ 习题 输出日期时间--友元函数 时间限制: 1 Sec  内存限制: 128 MB 提交: 1069  解决: 787 题目描述 设计一个日期类和时间类,编写display函数用于 ...

  6. idea如何将普通文件夹转成java项目root目录/maven

    转java项目 转maven 选中pom文件右键就能看到了

  7. Python之Split函数

    python中的split()函数用来拆分一个字符串,通过指定的分隔符对字符串进行切割,返回切割后的字符串列表list. split()函数用法: str.split(str=' ',num = st ...

  8. BZOJ_4459_[Jsoi2013]丢番图_数学+分解质因数

    BZOJ_4459_[Jsoi2013]丢番图_数学+分解质因数 Description 丢番图是亚历山大时期埃及著名的数学家.他是最早研究整数系数不定方程的数学家之一. 为了纪念他,这些方程一般被称 ...

  9. math.floor()函数的用法

    floor() 返回数字的下舍整数. 语法 以下是 floor() 方法的语法: import math math.floor( x ) 注意:floor()是不能直接访问的,需要导入 math 模块 ...

  10. vue 随笔 vue 的属性和方法

    新建的项目中main.js是项目的入口文件 npm run dev 运行文件 npm run bulid  编译 属性与方法 每个Vue实例都会代理其 data 对象里所有的属性: var data= ...