头歌- 校园大数据

校园大数据—数据可视化

第1关:使用柱状图展示每门课程男女选修人数

包含五个代码部分请分开粘贴:

application.properties

#********** Begin **********#
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=utf-8
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123123
#********** End **********#

CoursesNumber.java

package com.example.student.pojo;
public class CoursesNumber {
    /********** Begin **********/
    private String coursename; // 课程名称
    private int malesnumber; // 男生数量
    private int femalesnumber; // 女生数量
    public CoursesNumber() {
    }
    public CoursesNumber(String coursename, int malesnumber, int femalesnumber) {
        this.coursename = coursename;
        this.malesnumber = malesnumber;
        this.femalesnumber = femalesnumber;
    }
    public String getCoursename() {
        return coursename;
    }
    public void setCoursename(String coursename) {
        this.coursename = coursename;
    }
    public int getMalesnumber() {
        return malesnumber;
    }
    public void setMalesnumber(int malesnumber) {
        this.malesnumber = malesnumber;
    }
    public int getFemalesnumber() {
        return femalesnumber;
    }
    public void setFemalesnumber(int femalesnumber) {
        this.femalesnumber = femalesnumber;
    }
    /********** End **********/
}

CoursesNumberMapper.java

package com.example.student.mapper;
import com.example.student.pojo.CoursesNumber;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/********** Begin **********/
@Mapper
public interface CoursesNumberMapper {
    // 查询 courses_number 表数据
    @Select("select * from courses_number")
    List<CoursesNumber> queryAll();
}
/********** End **********/

CoursesNumberController.java

package com.example.student.controller;
import com.example.student.mapper.CoursesNumberMapper;
import com.example.student.pojo.CoursesNumber;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
/********** Begin **********/
@Controller
public class CoursesNumberController {
    @Autowired
    private CoursesNumberMapper coursesNumberMapper;
    /**
     * 模板跳转
     *
     * @param page
     * @return
     */
    @RequestMapping("/{page}")
    public String index(@PathVariable String page) {
        return page;
    }
    @RequestMapping("/coursesdata")
    @ResponseBody
    public List<CoursesNumber> queryAll() {
        List<CoursesNumber> list = coursesNumberMapper.queryAll();
        System.out.println(list.toString());
        return list;
    }
}
/********** End **********/

coursesnumber.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>课程男女人数图</title>
</head>
<body>
<div id="main" style="height:600px;width:80%;"></div>
<script type="text/JavaScript" src="/js/echarts.min.js"></script>
<script type="text/JavaScript" src="/js/jquery.min.js"></script>
<script type="text/javascript">
    /********** Begin **********/
$(document).ready(function () {
        var myChart = echarts.init(document.getElementById('main'));
        $.ajax({
            type: "post",
            async: true,
            url: "/coursesdata",
            dataType: "json",
            success: function (result) {
                var coursenames = [];
                var malesnumbers = [];
                var femalesnumber = [];
                for (var i = 0; i < result.length; i++) {
                    coursenames.push(result[i].coursename)
                    malesnumbers.push(result[i].malesnumber)
                    femalesnumber.push(result[i].femalesnumber)
                }
                option = {
                    tooltip: {
                        trigger: 'axis',
                        axisPointer: {
                            type: 'shadow'
                        }
                    },
                    legend: {
                        data: ['男生数量','女生数量']
                    },
                    grid: {
                        left: '3%',
                        right: '4%',
                        bottom: '3%',
                        containLabel: true
                    },
                    xAxis: [
                        {
                            type: 'category',
                            data: coursenames,
                            axisLabel: {
                                interval: 0,
                                formatter: function (value) {
                                    return value.split("").join("\n");
                                }
                            },
                        }
                    ],
                    yAxis: [
                        {
                            type: 'value',
                            max: 920,
                            min: 800,
                            splitNumber: 6,
                        }
                    ],
                    series: [
                        {
                            name: '男生数量',
                            type: 'bar',
                            barWidth: '30%',
                            itemStyle: {
                                normal: {
                                    color: 'blue'
                                }
                            },
                            data: malesnumbers
                        },
                        {
                            name: '女生数量',
                            type: 'bar',
                            barWidth: '30%',
                            itemStyle: {
                                normal: {
                                    color: 'red'
                                }
                            },
                            data: femalesnumber
                        }
                    ]
                };
                myChart.setOption(option);
            },
            error: function (errorMsg) {
                //请求失败时执行该函数
                alert("图表请求数据失败!");
            }
        });
    });
    /********** End **********/
</script>
</body>
</html>

第2关:使用饼状图展示课程各个成绩段的人数占比

包含五个代码部分请分开粘贴:

application.properties

#********** Begin **********#
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=utf-8
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123123
#********** End **********#

CoursesScore.java

package com.example.student.pojo;
public class CoursesScore {
    /********** Begin **********/
    private String courseid;
    private String coursename; // 课程名称
    private String level; // 等级
    private int num; // 数量
    public CoursesScore() {
    }
    public CoursesScore(String courseid, String coursename, String level, int num) {
        this.courseid = courseid;
        this.coursename = coursename;
        this.level = level;
        this.num = num;
    }
    public String getCourseid() {
        return courseid;
    }
    public void setCourseid(String courseid) {
        this.courseid = courseid;
    }
    public String getCoursename() {
        return coursename;
    }
    public void setCoursename(String coursename) {
        this.coursename = coursename;
    }
    public String getLevel() {
        return level;
    }
    public void setLevel(String level) {
        this.level = level;
    }
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    /********** End **********/
}

CoursesScoreMapper.java

package com.example.student.mapper;
import com.example.student.pojo.CoursesScore;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/********** Begin **********/
@Mapper
public interface CoursesScoreMapper {
    // 查询 courses_score 表数据
    @Select("select * from courses_score where courseid = #{courseid}")
    List<CoursesScore> queryAllByCourseid(String courseid);
}
/********** End **********/

CoursesScoreController.java

package com.example.student.controller;
import com.example.student.mapper.CoursesScoreMapper;
import com.example.student.pojo.CoursesScore;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/********** Begin **********/
@Controller
public class CoursesScoreController {
    @Autowired
    private CoursesScoreMapper coursesScoreMapper;
    /**
     * 模板跳转
     *
     * @param page
     * @return
     */
    @RequestMapping("/{page}")
    public String index(@PathVariable String page) {
        return page;
    }
    @RequestMapping("/coursesdata")
    @ResponseBody
    public List<CoursesScore> queryAllByCourseid(@RequestParam("courseid") String courseid) {
        List<CoursesScore> list = coursesScoreMapper.queryAllByCourseid(courseid);
        return list;
    }
}
/********** End **********/

coursesscore.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>课程成绩图</title>
</head>
<body>
<div id="main" style="height:600px;width:600px;margin:0 auto;"></div>
<script type="text/JavaScript" src="/js/echarts.min.js"></script>
<script type="text/JavaScript" src="/js/jquery.min.js"></script>
<script type="text/javascript">
    /********** Begin **********/
    $(document).ready(function () {
        var myChart = echarts.init(document.getElementById('main'));
        var courseid = window.location.href.split("?")[1].split("=")[1];
        var val = {"courseid": courseid};
        $.ajax({
            type: "post",
            async: true,
            url: "/coursesdata",
            data: val,
            dataType: "json",
            success: function (result) {
                var coursename = "";
                var levels = [];
                var values = [];
                for (var i = 0; i < result.length; i++) {
                    coursename = result[i].coursename;
                    levels.push(result[i].level);
                    var parse = {"value": result[i].num, "name": result[i].level};
                    values.push(parse);
                }
                option = {
                    title: {
                        text: coursename,
                        left: 'center'
                    },
                    tooltip: {
                        trigger: 'item',
                        formatter: '{a} <br/>{b} : {c} ({d}%)'
                    },
                    legend: {
                        orient: 'vertical',
                        left: 'left',
                        data: levels
                    },
                    series: [
                        {
                            name: coursename,
                            type: 'pie',
                            radius: '55%',
                            center: ['50%', '60%'],
                            data: values,
                            emphasis: {
                                itemStyle: {
                                    shadowBlur: 10,
                                    shadowOffsetX: 0,
                                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                                }
                            }
                        }
                    ]
                };
                myChart.setOption(option);
            },
            error: function (errorMsg) {
                //请求失败时执行该函数
                alert("图表请求数据失败!");
            }
        });
    });
    /********** End **********/
</script>
</body>
</html>

第3关:使用折线图展示各种支付方式在每月的数量变化趋势

包含五个代码部分请分开粘贴:

application.properties

#********** Begin **********#
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=utf-8
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123123
#********** End **********#

PayNumber.java

package com.example.student.pojo;
public class PayNumber {
    /********** Begin **********/
    private String pay;
    private String coursename; // 支付方式
    private String date; // 月份
    private int malesnumber; // 男生使用次数
    private int femalesnumber; // 女生使用次数
    private int num; // 总次数
    public PayNumber() {
    }
    public PayNumber(String pay, String coursename, String date, int malesnumber, int femalesnumber, int num) {
        this.pay = pay;
        this.coursename = coursename;
        this.date = date;
        this.malesnumber = malesnumber;
        this.femalesnumber = femalesnumber;
        this.num = num;
    }
    public String getPay() {
        return pay;
    }
    public void setPay(String pay) {
        this.pay = pay;
    }
    public String getCoursename() {
        return coursename;
    }
    public void setCoursename(String coursename) {
        this.coursename = coursename;
    }
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    public int getMalesnumber() {
        return malesnumber;
    }
    public void setMalesnumber(int malesnumber) {
        this.malesnumber = malesnumber;
    }
    public int getFemalesnumber() {
        return femalesnumber;
    }
    public void setFemalesnumber(int femalesnumber) {
        this.femalesnumber = femalesnumber;
    }
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    /********** End **********/
}

PayNumberMapper.java

package com.example.student.mapper;
import com.example.student.pojo.PayNumber;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/********** Begin **********/
@Mapper
public interface PayNumberMapper {
    // 查询 pay_number 表数据
    @Select("select * from pay_number")
    List<PayNumber> queryAll();
}
/********** End **********/

PayNumberController.java

package com.example.student.controller;
import com.example.student.mapper.PayNumberMapper;
import com.example.student.pojo.PayNumber;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/********** Begin **********/
@Controller
public class PayNumberController {
    @Autowired
    private PayNumberMapper payNumberMapper;
    /**
     * 模板跳转
     *
     * @param page
     * @return
     */
    @RequestMapping("/{page}")
    public String index(@PathVariable String page) {
        return page;
    }
    @RequestMapping("/paydata")
    @ResponseBody
    public List<PayNumber> queryAllByCourseid() {
        List<PayNumber> list = payNumberMapper.queryAll();
        System.out.println(list.toString());
        return list;
    }
}
/********** End **********/

paynumber.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>支付方式占比图</title>
</head>
<body>
<div id="main" style="height:600px;width:600px;margin:0 auto;"></div>
<script type="text/JavaScript" src="/js/echarts.min.js"></script>
<script type="text/JavaScript" src="/js/jquery.min.js"></script>
<script type="text/javascript">
    /********** Begin **********/
    $(document).ready(function () {
        var myChart = echarts.init(document.getElementById('main'));
        $.ajax({
            type: "post",
            async: true,
            url: "/paydata",
            dataType: "json",
            success: function (result) {
                function unique(arr) {
                    for (var i = 0, len = arr.length; i < len; i++) {
                        for (var j = i + 1, len = arr.length; j < len; j++) {
                            if (arr[i] === arr[j]) {
                                arr.splice(j, 1);
                                j--;
                                len--;
                            }
                        }
                    }
                    return arr;
                }
                var dates = [];
                var values = [];
                dates.push('product');
                var a = [];
                for (var i = 0; i < result.length; i++) {
                    dates.push(result[i].date);
                    var pay = result[i].pay;
                    if (a.indexOf(pay) === -1) {
                        a.push(pay);
                        var pays = [];
                        pays.push(pay);
                        for (var y = 0; y < result.length; y++) {
                            if (pay === result[y].pay) {
                                pays.push(result[y].num);
                            }
                        }
                        values.push(pays);
                    }
                }
                values.unshift(unique(dates));
                option = {
                    legend: {},
                    tooltip: {
                        trigger: 'axis',
                        showContent: false
                    },
                    dataset: {
                        source: values
                    },
                    xAxis: {type: 'category'},
                    yAxis: {gridIndex: 0},
                    grid: {top: '55%'},
                    series: [
                        {type: 'line', smooth: true, seriesLayoutBy: 'row'},
                        {type: 'line', smooth: true, seriesLayoutBy: 'row'},
                        {type: 'line', smooth: true, seriesLayoutBy: 'row'},
                        {type: 'line', smooth: true, seriesLayoutBy: 'row'},
                        {type: 'line', smooth: true, seriesLayoutBy: 'row'},
                        {type: 'line', smooth: true, seriesLayoutBy: 'row'},
                        {
                            type: 'pie',
                            id: 'pie',
                            radius: '30%',
                            center: ['50%', '25%'],
                            label: {
                                formatter: '{b}: {@2012} ({d}%)'
                            },
                            encode: {
                                itemName: 'product',
                                value: '2012',
                                tooltip: '2012'
                            }
                        }
                    ]
                };
                myChart.on('updateAxisPointer', function (event) {
                    var xAxisInfo = event.axesInfo[0];
                    if (xAxisInfo) {
                        var dimension = xAxisInfo.value + 1;
                        myChart.setOption({
                            series: {
                                id: 'pie',
                                label: {
                                    formatter: '{b}: {@[' + dimension + ']} ({d}%)'
                                },
                                encode: {
                                    value: dimension,
                                    tooltip: dimension
                                }
                            }
                        });
                    }
                });
                myChart.setOption(option);
            },
            error: function (errorMsg) {
                //请求失败时执行该函数
                alert("图表请求数据失败!");
            }
        });
    });
    /********** End **********/
</script>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值