【食堂管理项目记录】Echarts的使用
2018-03-25 18:46
232 查看
这回做图表分析的时候发现了一个比较好看也好用的,一个使用 JavaScript 实现的开源可视化库ECharts
他的网站:http://echarts.baidu.com/
下载:http://echarts.baidu.com/download.html
我一般要好看的话就直接下他的完整版了。
用它来实现食堂的数据分析。
日期查询的组件用的是layui的日期选择器。<%@ page language="java" import="java.sql.*,java.io.*,java.util.*,model.Cafe" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head >
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" href="./layui/css/layui.css"/>
<script src="./layui/layui.js"></script>
<script src="./js/echarts.min.js"></script>
<title></title>
</head>
<body style="width:1080px;">
<div style="margin-top:30px;margin-left:250px;margin-right:50px;">
<form method="post" action="CafeChartServlet">
<div class="layui-inline">
<label class="layui-form-label">查询日期</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" id="test1" name="test1" placeholder="yyyy-MM-dd">
</div>
</div>
<script>
layui.use('laydate', function(){
var laydate = layui.laydate;
laydate.render({
elem: '#test1'
});
});
</script>
<div class="layui-inline">
<div calss="layui-input" style="margin-left:30px;">
<input type="submit" class="layui-btn layui-btn-normal" value="查询">
</div>
<script type="text/javascript">
function btnSubmitForm(o) {
}
</script>
</div>
</form>
</div>
<hr/>
<%
request.setCharacterEncoding("UTF-8");
ArrayList<Cafe> cafelist = (ArrayList)request.getAttribute("cafelist");
%>
<script type="text/javascript">
var list=[];//大的集合
//集合对象
<%
if(cafelist!=null){
for(int i=0;i<cafelist.size();i++){
Cafe cafe=(Cafe)cafelist.get(i);
%>
var obj = new Object();
obj.name= "<%=cafe.getCafe()%> ";
obj.value= "<%=cafe.getAmount()%> ";
list.push(obj);
<% }} %>
</script>
<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
<div id="main" style="width: 600px;height:400px;padding-left:200px;padding-top:50px"></div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
option = {
backgroundColor: '#2c343c',
title: {
text: '各食堂营业额分布',
left: 'center',
top: 20,
textStyle: {
color: '#ccc'
}
},
tooltip : {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
visualMap: {
show: false,
min: 0,
max: 300,
inRange: {
colorLightness: [0, 1]
}
},
series : [
{
name:'食堂',
type:'pie',
radius : '55%',
center: ['50%', '50%'],
data:list.sort(function (a, b) { return a.value - b.value; }),
roseType: 'radius',
label: {
normal: {
textStyle: {
color: 'rgba(255, 255, 255, 0.3)'
}
}
},
labelLine: {
normal: {
lineStyle: {
color: 'rgba(255, 255, 255, 0.3)'
},
smooth: 0.2,
length: 10,
length2: 20
}
},
itemStyle: {
normal: {
color: '#c23531',
shadowBlur: 200,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
},
animationType: 'scale',
animationEasing: 'elasticOut',
animationDelay: function (idx) {
return Math.random() * 200;
}
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
<input type="text" class="layui-input" id="test1">
<script>
layui.use('laydate', function(){
var laydate = layui.laydate;
//执行一个laydate实例
laydate.render({
elem: '#test1' //指定元素
});
});
</script>
</body>
</html>基本上就是照着官网上的教程扒下来的,后台用一个servlet来实现数据查询,然后返回一个ArrayList就可以了
他的网站:http://echarts.baidu.com/
下载:http://echarts.baidu.com/download.html
我一般要好看的话就直接下他的完整版了。
用它来实现食堂的数据分析。
日期查询的组件用的是layui的日期选择器。<%@ page language="java" import="java.sql.*,java.io.*,java.util.*,model.Cafe" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head >
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" href="./layui/css/layui.css"/>
<script src="./layui/layui.js"></script>
<script src="./js/echarts.min.js"></script>
<title></title>
</head>
<body style="width:1080px;">
<div style="margin-top:30px;margin-left:250px;margin-right:50px;">
<form method="post" action="CafeChartServlet">
<div class="layui-inline">
<label class="layui-form-label">查询日期</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" id="test1" name="test1" placeholder="yyyy-MM-dd">
</div>
</div>
<script>
layui.use('laydate', function(){
var laydate = layui.laydate;
laydate.render({
elem: '#test1'
});
});
</script>
<div class="layui-inline">
<div calss="layui-input" style="margin-left:30px;">
<input type="submit" class="layui-btn layui-btn-normal" value="查询">
</div>
<script type="text/javascript">
function btnSubmitForm(o) {
}
</script>
</div>
</form>
</div>
<hr/>
<%
request.setCharacterEncoding("UTF-8");
ArrayList<Cafe> cafelist = (ArrayList)request.getAttribute("cafelist");
%>
<script type="text/javascript">
var list=[];//大的集合
//集合对象
<%
if(cafelist!=null){
for(int i=0;i<cafelist.size();i++){
Cafe cafe=(Cafe)cafelist.get(i);
%>
var obj = new Object();
obj.name= "<%=cafe.getCafe()%> ";
obj.value= "<%=cafe.getAmount()%> ";
list.push(obj);
<% }} %>
</script>
<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
<div id="main" style="width: 600px;height:400px;padding-left:200px;padding-top:50px"></div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
option = {
backgroundColor: '#2c343c',
title: {
text: '各食堂营业额分布',
left: 'center',
top: 20,
textStyle: {
color: '#ccc'
}
},
tooltip : {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
visualMap: {
show: false,
min: 0,
max: 300,
inRange: {
colorLightness: [0, 1]
}
},
series : [
{
name:'食堂',
type:'pie',
radius : '55%',
center: ['50%', '50%'],
data:list.sort(function (a, b) { return a.value - b.value; }),
roseType: 'radius',
label: {
normal: {
textStyle: {
color: 'rgba(255, 255, 255, 0.3)'
}
}
},
labelLine: {
normal: {
lineStyle: {
color: 'rgba(255, 255, 255, 0.3)'
},
smooth: 0.2,
length: 10,
length2: 20
}
},
itemStyle: {
normal: {
color: '#c23531',
shadowBlur: 200,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
},
animationType: 'scale',
animationEasing: 'elasticOut',
animationDelay: function (idx) {
return Math.random() * 200;
}
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
<input type="text" class="layui-input" id="test1">
<script>
layui.use('laydate', function(){
var laydate = layui.laydate;
//执行一个laydate实例
laydate.render({
elem: '#test1' //指定元素
});
});
</script>
</body>
</html>基本上就是照着官网上的教程扒下来的,后台用一个servlet来实现数据查询,然后返回一个ArrayList就可以了
相关文章推荐
- 【食堂管理项目记录】webservice使用之入门
- 使用Ant管理多项目时出现的无法打包问题记录
- mybatis+spring的TODO小项目记录(四)使用github管理代码
- 【食堂管理项目记录】java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
- 【项目记录】山东大学场馆管理系统之——场馆使用情况管理
- 使用maven管理项目的一些问题处理记录
- [导入]在 Visual Studio .NET IDE 内使用“从源代码管理打开”时出现无法读取项目文件的错误
- [导入]在 Visual Studio .NET IDE 内使用“从源代码管理打开”时出现无法读取项目文件的错误
- 使用 XMLAccess 灵活管理 WebSphere Portal 项目
- ASP.NET项目怎样进行管理?(VSS的使用)
- 使用Starteam视图(View)管理项目版本分支
- 在VS.NET内使用“从源代码管理打开”时出现无法读取项目文件的错误
- 使用Mingle来管理你的敏捷项目
- 在Linq to Sql中管理并发更新时的冲突(3):使用记录的时间戳进行检测
- 在Linq to Sql中管理并发更新时的冲突(3):使用记录的时间戳进行检测
- Web项目中使用NLog记录日志,利用单件模式控制整个项目只有一个Logger对象的问题
- vs.net web项目使用visual source safe进行源代码管理
- [导入]使用Office System构建基于项目的文档管理系统的设想
- 软件项目管理-会议记录模板
- (摘)vs.net web项目使用visual source safe进行源代码管理