结对第二次作业
结对第二次作业——某次疫情统计可视化的实现
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/2020SpringW/ |
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/2020SpringW/homework/10456 |
| 这个作业的目标 | 某次疫情统计可视化的实现 |
| 结对学号 | 221701207 221701226 |
| 作业正文 | ... |
| 其他参考文献 | ... |
1.Github仓库地址
2.展示你的成品
查看地图和各地疫情状况

鼠标移动高亮进行对应疫情状况查看


疫情感染人数、死亡人数、疑似感染人数、治愈人数



显示具体的人数波动
3、代码讨论过程
4、代码说明
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Home</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" media="screen" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" />
<link rel="stylesheet" href="css/index-style.css">
<script type="text/javascript" src="js/echarts.min.js"></script>
<link rel="stylesheet" href="css/bootstrap.css">
<script type="text/javascript" src="js/jquery-3.1.1.js"></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
<meta charset="UTF-8">
<title>map</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<script src="dist/echarts.js"></script>
<script src="map/js/china.js"></script>
<style>
*{margin:0;padding:0}
html,body{
width:100%;
height:100%;
}
#main{
width:800px;
height:600px;
margin: 150px auto;
border:1px solid #ddd;
}
/*默认长宽比0.75*/
</style>
</head>
<body>
<div class="loading">
</div>
<div id="wrap">
<!-- 头部日期选择 -->
<div class="bg" id="header">
<div class='input-group date' id='datetimepicker1'>
<table>
<tr style="text-align: center">
<td>
<p style="width: 260px;">X月XX日XX省疫情数据</p>
</td>
</tr>
</table>
</div>
</div>
var myChart = echarts.init(document.getElementById('main')); function randomValue() { return Math.round(Math.random()*10000); } option = { tooltip: { formatter:function(params,ticket, callback){ return params.seriesName+'<br />'+params.name+':'+params.value }//数据格式化 }, visualMap: { min: 0, max: 10000, left: 'left', top: 'bottom', text: ['高','低'],//取值范围的文字 inRange: { color: ['#FFCCCC', '#FF0000']//取值范围的颜色 }, show:true//图注 }, geo: { map: 'china', roam: false,//不开启缩放和平移 zoom:1.23,//视角缩放比例 label: { normal: { show: true, fontSize:'10', color: 'rgba(0,0,0,0.7)' } }, itemStyle: { normal:{ borderColor: 'rgba(0, 0, 0, 0.2)' }, emphasis:{ areaColor: '#F3B329',//鼠标选择区域颜色 shadowOffsetX: 0, shadowOffsetY: 0, shadowBlur: 20, borderWidth: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } }, series : [ { name: '信息量', type: 'map', geoIndex: 0, data:dataList } ] }; myChart.setOption(option); myChart.on('click', function (params) { alert(params.name); });
<!-- 图标疫情板块 -->
<div class="bg" style="padding: 10px 5px;margin-top: 15px">
<div id="chart-line">
</div>
<div>
<div id="box" style="width: 1500px; height:800px; background-color: pink;"></div>
<script>
// 获取到这个DOM节点,然后初始化
var myChart = echarts.init(document.getElementById("box"));
var option = {
// 定义样式和数据
backgroundColor: '#FBFBFB',
tooltip: {
trigger: 'axis'
},
legend: {
data: ['现有确诊', '累计确诊','累计治愈','累计死亡']
},
calculable: true,
xAxis: [{
axisLabel: {
rotate: 30,
interval: 0
},
axisLine: {
lineStyle: {
color: 'red'
}
},
type: 'category',
boundaryGap: false,
data: function() {
var list = [];
for (var i = 0; i < 13; i++) {
list.push('3-' + (1 + i) );
}
return list;
}()
}],
yAxis: [{
type: 'value',
axisLine: {
lineStyle: {
color: '#CECECE'
}
}
}],
series: [{
name: '现有确诊',
type: 'line',
symbol: 'none',
smooth: 0.3,
color: ['#66AEDE'],
data: [80, 30, 50, 80, 30, 60, 50, 30,]
}, {
name: '累计确诊',
type: 'line',
symbol: 'none',
smooth: 0.3,
color: ['#90EC7D'],
data: [60, 30, 40, 20, 30, 30, 20, 40,]
},
{
name: '累计治愈',
type: 'line',
symbol: 'none',
smooth: 0.3,
color: ['#FFFF00'],
data: [40, 20, 50, 10, 40, 20, 10, 60,]
},
{
name: '累计死亡',
type: 'line',
symbol: 'none',
smooth: 0.3,
color: ['#000000'],
data: [40, 40, 30, 20, 10, 20, 30, 20,]
}]
};
myChart.setOption(option);
</script>
</div>
</div>
</div>
代码主要是引用china.js和echarts.js进行完善设计,在js中将不同地区疫情的颜色、位置、高亮时的表现用rgba进行颜色变化表示,将折线图的变化和相应的鼠标事件用function来编写。
5、功能结构图

6、结对讨论过程
当我们两个拿到这个题目时,因为我们两个对web框架都不是很熟悉,我们首先思考的是前端如何快速的完成,然后在前端的完成之后,再尝试使用框架来进行后端的开发并且将前后端进行交互。对此,我们先开始学习了echarts官网文档和实例,了解了部分关于曲线图和中国地图的制作。 然后学习了JQuery和Bootstrap两个JavaScript库的中文文档并下载了他们进行前端开发使用。然后在后端开发中,我们先后尝试了JSP,PHP等框架,并学习了他们的操作手册,但很可惜的是,最后还是因为水平原因加上两个人的效率默契等原因,无法在作业截止前完成可以使用的后端。 并且由于在后端浪费了太多无用的时间,导致在前端最后的出品也没有很好。所以暂时的版本就是纯前端版本。希望以后水平技术提升之后能够回来弥补这个遗憾。
7、设计实现过程
后端两个人因为水平原因暂时没有做出来,这里先不描述设计实现过程。 前端首先是通过echarts官网实例来进行中国地图和曲线图的初步开发,然后通过echarts官网文档里面详细的内容开始修改,逐渐设计成功能所需要的样子。然后就是通过JQuery和BootStrap来进行数字疫情板块,界面跳转功能等功能的设计,最后实现前端的美观和完善。
8、心路历程和收获以及评价队友
心路历程和收获: 221701226:这次结对开发项目总体来说不太满意,两个人都因为各种原因导致了分心然后最终没有实现后端,也没有很好的实现项目。两个人在沟通上也发生了一定的困难,导致过程也很不顺利。但是两个人始终没有把错怪在队友身上,还是把这次作业不满意的原因归结在自己上。 收获就是首先认识了自己的不足,也更加深入明白了两个人开发和一个人开发完全不同的体验。希望两个人以后能配合更好,也希望自己能多学习,多增加后端框架的知识和编程能力,同时能够提高学习效率和开发效率。 评价队友: 221701226:人还不错,但是有一定的拖延症,需要人催和督促,希望能共同进步。
221701207:这次花的时间也不少,但是没有达到理想效果,可能是上学期的web课上的太差了,一直没有找到js或者是html里面如何进行数据库的查询,发现只能在php和 node里面弄,交流的力度不足够,但是Github的使用有了更深的认识,对于以后会继续完善,也会认识到这次的不足加以改正。

浙公网安备 33010602011771号