大数据可视化·期末复习

历史测试·(可视化往年例题)

  • 选择题(每题2分,共40分)
  1. 下列(   )不包含结构化数据。

A.数据库表         B.  电影视频        C.  Excel表格                D. 网页表单

  1. 下面不是暖色的是(    )。

A.红                  B. 橙                      C. 浅蓝                      D. 紫

  1. 下面不是大数据分析算法的是(    )。

A.机器学习      B. 聚类               C.  关联                     D. 转换

  1. 小王在界面上设计了很多图表,能够显示很多统计结果,用处比较大,设计也很美观,用户对此并不满意,认为没有突出主题,可能是因为不符合可视化设计的(        )标准。

A. 表达力强       B. 有效性强       C.  简洁易用                D. 有美感

  1. Excel中对某个表格的某个位置进行了引用(比如:=A3),纵向拖动行号不会进行自动扩展的是(    )。

A. =A3              B.  =$A3        C.  =A$3                    D. =B4

  1. 下面(    )可以用来表示连续数据的变化状态。

A. 柱状图        B.  折线图         C.  堆积图                    D. 饼图

  1. Excel中,需要对D3到F6之间所有的单元格求和,下面正确的是(    )。

A. =sum(D1:F3)   B. =sum(D3:F6)   C. =sum(D3, F6)      D. =sum(D3; F6)

  1. 下面(    )不是eChartst图表的主要组成部分(大小写不区分)。

A. toolbarname    B. grid              C. title                        D. xAxis

  1. eCharts饼图中,不需要进行配置的部分是()。

A x              B.数据系列               C.数据                     D.图例

  1. eCharts散点图中,采用“symbolSize: function (data) {}”的方法控制图上点的大小,这是采用了()的方式。

A.成员函数           B.调用函数             C.回调函数       D.类函数

  1. 下面做法中正确的是()。

A.在一个饼图中用不同颜色表示不同类型,不同个数的多组数据

B.在一个柱状图中显示两组不同个数,不同类别的数据

C.在不改变x轴label的情况下,散点图x轴默认的意义是数据类别

D.一个线状图可以用来表示相同类型的两组数据

  1. 设置eCharts散点图的数据如下:

[[1,1], [1,2],[1,3]];

有如下代码:

symbolSize: function (data){

                return data[0]

}

以上代码的运行效果是()。

A.数据离散分布在同一条竖线上;数据点大小一样;

B.数据离散分布在同一条横线上;数据点大小一样;

C.数据离散分布在同一条竖线上;数据点大小不一样;

D.数据离散分布在同一条横线上;数据点大小不一样。

  1. Javascript中,有:var data = [3,  {A: 1, B: 2, C: 3},  {A: 4, B: 5, C:{C: 6}}],则data[2].C是()。

A. {C: 6}            B. {A: 1, B: 2, C: 3}   C. {A: 1, B: 2, {C: 3}}  D. 3

  1. 在BS架构(网站)的信息系统中,前端浏览器通过()协议与后端服务端进行交互。

AHTTP               B.  Web Server              C.  JSON                  D. Ajax

  1. 前端表单请求的url是:“<form action = "http://127.0.0.1:5000/cmd" method = "post">”下面哪个能够正常相应前端表单的请求。

A.@app.route('/cmd:5000')

B.  @app.route('/127.0.0.1/cmd')

C.  @app.route('/cmd',  methods=['GET'])

D.  @app.route('/cmd',  methods=[ 'POST'])

  1. 需要在后台动态改变返回前台的eCharts图表的标题(title),需要(    )。

A.在相应route函数中采用return返回eCharts图表的标题

B.  在模板文件head标签中,定义变量{{title}}

C.  在模板文件head标签中,定义eCharts图表标题的字符串

D.  在模板文件head标签中,定义eCharts图表标题的变量,并在渲染函数(render_template)中对变量进行赋值

  1. flask模板文件中,数组变量Arr的定义正确的是(    )。
    1. {{Arr}}            B. {{Arr|safe}}               C. {{Arr[]}}             D. {[Arr]}
  2. 下面(    )与前后端分离的Web开发模式无关。

A. Ajax                    B. sprintboot                   C. Restful                    D. MyBatis

  1. 在Tableau中导入不同学生的学院、姓名、年龄如下:

电信学院

张三

17

电信学院

李四

18

艺术学院

王五

19

轨道学院

卢六

17

音乐学院

刘七

18

音乐学院

赵八

19

如果需要将学院类型进行分类显示,即,将电信学院和轨道学院显示为“工科学院”,将艺术学院和音乐学院显示为“文科学院”,那么可以采用()方法。

A. 分类                  B. 分级                  C. 分组                  D. 自动分组

  1. 用Tableau实现学生姓名、年龄表格的可视化,那么下面正确的是()。

A.姓名和年龄都是维度

B.姓名和年龄都是度量

C.姓名是维度,年龄是度量

D.姓名是度量,年龄是维度

二、根据要求,完成下列各题(2120分,2230分,每问10分;2310分;共60分)

  1. 根据提供的Excel表格,完成下面任务:

(1)生成柱状图,统计三个班级的平均成绩;

(2)生成饼图,统计每个班级人数在所有学生人数中的占比。

要求:在同一个表单(sheet)中生成图表,并提交电子档Excel文件。

  1. 根据提供的Excel表格,完成下列任务:

(1)用eCharts编写网页,绘制折线图,横轴显示基金名称、纵轴表示基金的净值;

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <script src="echarts.js"></script>
</head>
<body>
    <div id="lineChart" style="width: 600px;height:400px;"></div>
    <script>
        var myChart = echarts.init(document.getElementById('lineChart'));
        var option = {
            xAxis: {
                type: 'category',
                data: ['基金1', '基金2', '基金3']
            },
            yAxis: {
                type: 'value'
            },
            series: [{
                data: [820, 932, 901],
                type: 'line'
            }]
        };
        myChart.setOption(option);
    </script>
</body>
</html>

(2)用eCharts编写网页,绘制饼图,统计各基金净值在所有基金净值总和中的占比;

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <script src="echarts.js"></script>
</head>
<body>
    <div id="pieChart" style="width: 600px;height:400px;"></div>
    <script>
        var myChart = echarts.init(document.getElementById('pieChart'));
        var option = {
            series: [{
                name: '净值占比',
                type: 'pie',
                radius: '50%',
                data: [
                    {value: 820, name: '基金1'},
                    {value: 932, name: '基金2'},
                    {value: 901, name: '基金3'}
                ]
            }]
        };
        myChart.setOption(option);
    </script>
</body>
</html>

3采用Tableau,生成柱状图,横轴显示基金名称、纵轴表示基金的净值

要求:编写网页时,须提交电子档htmljs(如果有js的话)文件;Tableau可视化提供生成图表后的界面截图。

提示:

图表变量 = echarts.init(document.getElementById(..));

参数变量 = {   legend: { data: [.. , ..] },

xAxis: { type: 'value/category' , data: [.. , ..]},

yAxis: {type: 'value/category',  data: [.. , ..] },

series: [

                {

                        name: '..', 

                        type: 'bar/line/scatter/pie',

                        data: [.. , ..] / [{ name: '..',  value: '..'}, ..]/ [[.. , ..],[ .. , ..], ..]

                                                ]};

图表变量.setOption(参数变量);

  1. 读取Excel数据表格,结合flask,按要求生成图表:
  1. 前台表单中包括图表显示框和提交按钮,用户在浏览器地址栏中输入默认地址http://127.0.0.1:5000/时,读取csv表格,以柱状图显示六种产品的净值,横轴代表产品的名称,纵轴代表产品的净值;
  2. 点击提交,则读取csv表格,并在前端网页上以柱状图的形式,显示富荣基金的三种产品的净值,横轴代表产品的名称,纵轴代表产品的净值。

要求:提交电子档htmljs(如果有js的话)和python源代码文件。

基础操作题准备练习

用ECharts编写网页:

网页代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <!-- 自适应布局 定义宽度为设备宽度 -->
    <!-- <meta name="viewport" content="width=device-width, initial-scale=2.0"> -->
    <title>样例网页</title>
    <script src="draw.js"></script>
    <style>
        .box {
            width:1000px;
            height: 600px;
            /*根据屏幕实际大小设置合适值 */
            border: 1px solid black;
            background: rgba(179, 40, 40, 0.1);
        }
    </style>
</head>
<body>
    <div class="box" id='g1'></div>
    <script>
        draw('g1');
    </script>
</body>
</html>

绘图:

柱状图 折现图 点状图 饼图

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>ECharts</title>
    <!-- 引入 echarts.js -->
    <script src="echarts.js"></script>
</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 600px;height:400px;"></div>
    <div id="main2" style="width: 600px;height:400px;"></div>
    <script>
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));
        // 指定图表的配置项和数据
        var option = {
            title: {
                text: '我的第一幅ECharts可视化图'
            },
            tooltip: {},
            legend: {
                data:['各产品销量情况']
            },
            xAxis: {
                data: ["产品A","产品B","产品C","产品D","产品E"]
            },
            yAxis: {},
            series: [{
                name: '销量',
                // type: 'bar', //柱状图
                // type: 'line', //折线图
                type:'scatter',  //点图
                data: [900, 700, 550, 1000, 200]
            }]
        };
        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
    </script>
    <script>
    var myChart = echarts.init(document.getElementById('main2'));
    var option = {
        title: {
            text: '各商品销量占比',
            subtext: 'A商场情况分析',
            left: 'center'
        },
        tooltip: {
            trigger: 'item',
        },
        legend: {
            orient: 'vertical',//垂直排列
            left: 'left',
            data: ['A商品', 'B商品', 'C商品', 'D商品',]
        },
        series: [{
            name: '所售商品',
            type: 'pie',
            label: {
                show: true,
                formatter: '{b} : ({d}%)',
                position: 'inside'
            },
            data: [
                { value: 343, name: 'A商品' },
                { value: 250, name: 'B商品' },
                { value: 509, name: 'C商品' },
                { value: 108, name: 'D商品' },
            ],
        },]
    };
    myChart.setOption(option);
</script>
</body>
</html>



 

饼图基础代码

<script>
    var myChart = echarts.init(document.getElementById('main2'));
    var option = {
        series: [{
            name: '所售商品',
            type: 'pie',//饼图
            data: [
                { value: 343, name: 'A商品' },
                { value: 250, name: 'B商品' },
                { value: 509, name: 'C商品' },
                { value: 108, name: 'D商品' },
            ],
        },]
    };
    myChart.setOption(option);
</script>

Flask 部分:

.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 500px;
            height :280px;
            border: 1px solid black;
            /* display: inline-block; */
            /* margin: auto; */
            text-align: left;
            word-wrap:break-word;
        }
    </style>
    <script src="jquery-3.6.0.js"></script>
    <script src="echarts(5.3).js"></script>
</head>
<body>
    <!-- form submit -->
    <div class="box" id="showarea"></div>
    <input id="button1" type="button" value="Get JSON">
    
        <script>
        $(document).ready(
            function(){
                console.log('ready!!!');
            }
        );

        // Get 自行构建URL
        $("#button1").click(
            function(){
                $.get("http://127.0.0.1:5000/gendataget", 
                    {"dataname": $("#datanameinput").val(), "datanum": $("#datanuminput").val()}, 
                    function(data){
                        httpbackstr(data);
                    }
                );
            }
        );

        function httpbackstr(param){
            var jsstruct = JSON.parse(param);
            console.log(jsstruct);
            showBar("showarea", jsstruct["xarr"], jsstruct["yarr"]);
        }

        function showBar(graphId, xarr, yarr){
            var myChart = echarts.init(document.getElementById(graphId));

            var option = {
                yAxis: { type: 'value' },
                xAxis: { type: 'category' , 
                        data: xarr},
                series: [{
                        name: '数据',
                        type: 'line',
                        data: yarr,
                        barWidth: '60%'}]
            };
            myChart.setOption(option);
        }
    </script>
</body>
</html>

.py文件

from flask import Flask
from flask_cors import *
import json,sys
import numpy as np
import pandas as pd 
app = Flask(__name__)
CORS(app)
# 传统表单通信
# http://127.0.0.1:5000/formlogin?username=ffff&password=wwwww
@app.route('/gendataget', methods=['GET'])
def gendataget():
    path=sys.path[0]   #当前文件路径
    print(path)
    df = pd.read_csv(path+"\\data.csv", header=0)
    print(df)
    xarr = df.iloc[:, 0].to_list()
    yarr = df.iloc[:, 1].to_list()
    return gendata(xarr, yarr)
def gendata(xarr, yarr):
    newdict = {
        "xarr": xarr,
        "yarr": yarr
    }
    jsonstr = json.dumps(newdict)
    print(jsonstr)
    return jsonstr
if __name__=="__main__":
    print('flask running')
    app.run(host='127.0.0.1', port = 5000, debug=True, use_reloader=False)



 data.csv文件

名称,数量
喜鹊,23
猫咪,12
狗子,2
黑天鹅,10
灰天鹅,1

  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

君士睿心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值