利用ECharts开发的步骤
- 引入Echarts的相关库文件,以及自定义的js文件
<script src="${pageContext.request.contextPath}/js/echarts/source/echarts.js"></script>
<script src="${pageContext.request.contextPath}/js/phoneSample.js"></script>
- 定义图表的展示位置,建议使用bootstrap布局
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
<ul id="myTab" class="nav nav-tabs">
<li class="active"><a href="#iPhone" data-toggle="tab">iPhone</a></li>
<li><a href="#SAMSUNG" data-toggle="tab">SAMSUNG</a></li>
</ul> <div id="myTabContent" class="tab-content">
<div class="tab-pane fade in active" id="iPhone">
<div class="row placeholders" style="float:clear;">
<h2><strong>iPhone手机分析</strong></h2>
</div>
<div class="row placeholders">
<div class="col-xs-6 col-sm-3 placeholder" id ="pie4All_iPhone" style="height:500px;width:650px">
</div>
<div class="col-xs-6 col-sm-3 placeholder" id ="bar_iPhone" style="height:500px;width:650px;float:left;">
</div>
</div>
<div class="row placeholders">
<div class="col-xs-6 col-sm-3 placeholder" id ="pie4Not_iPhone" style="height:500px;width:650px">
</div>
</div>
</div>
<div class="tab-pane fade" id="SAMSUNG">
<div class="row placeholders" style="float:clear;">
<h2><strong>SAMSUNG手机分析</strong></h2>
</div>
<div class="row placeholders">
<div class="col-xs-6 col-sm-3 placeholder" id ="pie4All_SAMSUNG" style="height:500px;width:650px">
</div>
<div class="col-xs-6 col-sm-3 placeholder" id ="bar_SAMSUNG" style="height:500px;width:650px;float:left;">
</div>
</div>
<div class="row placeholders">
<div class="col-xs-6 col-sm-3 placeholder" id ="pie4Not_SAMSUNG" style="height:500px;width:650px">
</div>
</div>
</div>
</div>
</div>
- 编写phoneSample.js文件,处理图表数据(代码很简单,详见注释)
//封装饼状图参数
function setOptionPie(data){ var legend_data = [];
if(data && data.length > 0){ $.each(data, function(idx, d){ legend_data.push(d.name);
}); } var option = {
title : {
text: data.title || '',
x:'center'
},
tooltip : {
trigger: 'item',
formatter: "{b} : {c} ({d}%)"
},
legend: {
orient : 'vertical',
x : 'left',
data:legend_data
},
calculable : true,
series : [
{
type:'pie',
radius : '55%',
center: ['50%', '60%'],
data:data,
itemStyle : {
normal : {
label : {
show: true,
position : 'outer',
formatter : "{b}\n{d}%",//在饼状图上显示百分比
/*textStyle : {
color : 'rgba(30,144,255,0.8)',
align : 'center',
baseline : 'middle',
fontFamily : '微软雅黑',
fontSize : 30,
fontWeight : 'bolder'
}*///自定义饼图上字体样式
},
labelLine : {
show : true,
}
},
emphasis : {
label : {
show : true,
formatter : "{d}%"//鼠标移动到饼状图上显示百分比
}
} }
}
]
}; return option;
} //封柱状状图参数
function setOptionBar(data){ var legend_data = []; //var series = [];
if(data && data.length > 0){ $.each(data, function(idx, d){ legend_data.push(d.name);
//series.push({name:d.name,type:'bar',itemStyle : { normal: {label : {show: true, position: 'insideRight'}}},data:d.data});
}); } /*var option = {
tooltip : {
trigger: 'axis',
axisPointer : { // 坐标轴指示器,坐标轴触发有效
type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
legend: {
data:legend_data
},
calculable : true,
xAxis : [
{
type : 'value'
}
],
yAxis : [
{
type : 'category',
data : data && data[0] ? data[0].yAxis : []
}
],
series : series
};
return option;*/ var option = {
title : {
text: data.title || '',
x:'center'
},
tooltip : {
trigger: 'axis',
axisPointer : { // 坐标轴指示器,坐标轴触发有效
type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
legend: {
orient : 'vertical',
x : 'left',
data:legend_data
},
calculable : true,
xAxis : [
{
type : 'value'
}
],
yAxis : [
{
type : 'category',
data : data && data[0] ? data[0].yAxis : []
}
],
series : [
{
name:legend_data[0],
type:'bar',
stack: '总量',
itemStyle : { normal: {label : {show: true, position: 'insideRight'}}},
data:data[0].data
},
{
name:legend_data[1],
type:'bar',
stack: '总量',
itemStyle : { normal: {label : {show: true, position: 'insideRight'}}},
data:data[1].data
},
{
name:legend_data[2],
type:'bar',
stack: '总量',
itemStyle : { normal: {label : {show: true, position: 'insideRight'}}},
data:data[2].data
}
]
};
return option;
} //设置相关参数,展示图表
function showChart(data, type, phoneFlag) {
require([ 'echarts', 'echarts/chart/'+(type.substr(0,3) == 'pie'?'pie':type) ], function(ec) {
var myChart = ec.init(document.getElementById(type+'_'+phoneFlag)); var option = null; if(type == 'pie4All'){
data.title = "口碑现状";
option = setOptionPie(data);
}else if(type == 'bar'){
data.title = "用户评价的分布现状";
option = setOptionBar(data);
}else if(type == 'pie4Not'){
data.title = "负面信息属性分布状况";
option = setOptionPie(data);
} myChart.setOption(option); window.onresize = function () {
myChart.resize();
}; });
} // 请求后台数据,填充图表
function ajaxChart(phoneFlag, type) { $.ajax({
type : "POST",
dataType : "json",// 返回json格式的数据
url : "../psServlet",
data : {
phoneFlag : phoneFlag,
method: type
},
success : function(data) { if(data && data.length > 0){
showChart(data, type, phoneFlag);
}
}
}); } $(function(){ // 加载图表所需的js库文件
require.config({
paths: {
echarts: path+'/js/echarts/source'
}
}); ajaxChart("iPhone", "pie4All");
ajaxChart("iPhone", "bar");
ajaxChart("iPhone", "pie4Not"); ajaxChart("SAMSUNG", "pie4All");
ajaxChart("SAMSUNG", "bar");
ajaxChart("SAMSUNG", "pie4Not"); });
- 后续准备用面向对象的方式封装下,将图表展示和数据接口独立出来,方便其他项目引用
利用ECharts开发的步骤的更多相关文章
- 移动端不利用HTML5和echarts开发一样可以实现大数据展示及炫酷统计系统(产品技术综合)
一.由于项目需要进行手机看板展示设计及开发展示效果图如下:
- 利用JAX-WS 开发web服务
近日在学习Rogers Candenhead的第六版的<Java 入门经典>第22章.利用JAX-WS 开发web服务,简略总结而言主要包括以下几个步骤: 1.定义服务端点接口类: 主要就 ...
- 利用WinDriver开发PCI设备驱动程序
摘要 WinDriver是Jungo公司出版的一个设备驱动程序开发组件,它可以大大加速PCI设备驱动程序的开发.作者在实际的项目中采用了WinDriver来开发设备驱动程序,取得了相当好的运行效果.从 ...
- 【高德API】如何利用MapKit开发全英文检索的iOS地图
原文:[高德API]如何利用MapKit开发全英文检索的iOS地图 制作全英文地图的展示并不困难,但是要制作全英文的数据检索列表,全英文的信息窗口,你就没办法了吧.告诉你,我有妙招!使用iOS自带的M ...
- Loadrunner 脚本开发-利用loadrunner开发Windows Sockets协议脚本
脚本开发-利用loadrunner开发Windows Sockets协议脚本 by:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436 实践举例 Socket服务端简单实 ...
- 利用RTMFP开发P2P应用
利用RTMFP开发P2P应用 flash10使用RTMFP 开发点对点P2P应用 通过Stratus 服务器在Flash Player中使用RTMFP 开发 点对点应用 Adobe Flash Pla ...
- 利用echarts展示旅行足迹
前言 一直有个环游世界的梦,周游列国,体验不同国家的人类文明,寻山访水,体验造物主大自然的伟大造化.毕竟人生不止眼前的苟且,还有诗和远方.这么多年以来,陆续走过了一些地方,每到一个地方,都让我离梦想又 ...
- Mac中如何搭建Vue项目并利用VSCode开发
(一)部署Node环境 (1)下载适合Mac环境的Node包,点击进入下载页面 (2)安装Node环境:找到下载好的Node包,这里是node-v12.14.1.pkg,我们双击它,会进入Node.j ...
- PyQt开发实战: 利用QToolBox开发的桌面工具箱
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 toolBox工具箱是一个容器部件,对应类为QToolBox,在其内有一列从上到下顺序排列 ...
随机推荐
- 将坐标转化为与X轴正半轴夹角模板
//还需加PI 和 mabs 函数 double chg(double x,double y) { double tmps; )<1e-) { ) tmps=90.0; else tmps=27 ...
- iOS 修改textholder的颜色
UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(, , , )]; textField.placeholde ...
- angular-ui-bootstrap 日历控件国际化
angularjs-angular-ui-bootstrap-changing-language http://stackoverflow.com/questions/19671887/angular ...
- scrapy工程创建及pycharm运行
1.通过命令行创建scrapy工程项目 scrapy startproject (工程名) scrapy startproject myxml 2.利用爬虫模板设置爬虫文件 在这个过程中我们可以先利用 ...
- 巨蟒python全栈开发-第8天 文件操作
一.文件操作 今日大纲: 1.文件操作->open() open 打开 f=open(文件路径,mode='模式',encoding='编码格式') #python最最底层操作的就是bytes ...
- 安装Vmware ESX Server5.5 ——hardware virtualization is not a feature of the cpu or is not enabled in the BIOS
Error信息: hardware virtualization is not a feature of the cpu or is not enabled in the BIOS 解决方案: F2进 ...
- 模块 - random/string/os/sys/shutil/zipfile/tarfile
random 模块 方法: >>> random.randint(1,3) #会包含 1 2 3 3 >>> random.randrange(1,3) #会包含 ...
- 3*0.1 == 0.3 将会返回什么?true 还是 false?
false,因为有些浮点数不能完全精确的表示出来 public static void main(String[] args) { System.out.println(3 * 0.1); Syste ...
- ubuntu su failure when password was right
https://blog.csdn.net/u013066244/article/details/52694540
- Linux 使用crontab定时备份Mysql数据库
项目中数据库的数据是至关重要的!在实际项目中,遇到有客户机房断电导致数据库数据丢失的问题,又因为备份容灾不及时,导致部分数据恢复不了,而刚好这部分丢失的数据对于客户来说又是至关重要的,那么怎么办呢?盲 ...