【Echarts】全国大学信息可视化

 
 

写在前面

本文针对爬取的全国大学信息,使用Echarts进行可视化呈现。包括经典的折线图、柱状图、饼图,以及更加有趣的玫瑰图、矩形树图、极坐标图、分布地图等。

另外,原始数据(json),完整代码(html)均已上传,文末可见。

 
 


Stacked Area Chart(堆叠面积图)

Description:一所大学的总分(score)是多个维度得分的总和,比如办学层次、学科水平、办学资源、师资规模、重大成果、国际竞争等。堆叠面积图直观展现了某所院校的总分情况及其得分组成,并且还可以进行总分或者某维度得分的横向对比。

Example:下图展现了我国C9院校(2028)的得分及其得分组成情况,可以得到诸如以下结论:清北院校的得分显著高于哈工大;在所有院校中人才培养得分均占比较高;各院校国际竞争力得分相似,但在重大项目与成果方面随排名呈递减趋势。

在这里插入图片描述

Code

// 中国C9院校(这里偷懒将排名写死~)
const C9 = ["清华大学", "北京大学", "浙江大学", "上海交通大学", "南京大学", "复旦大学", "中国科学技术大学", "西安交通大学", "哈尔滨工业大学"];
// 各个比较维度(这里也偷懒写死了~)
const ST = ["办学层次", "学科水平", "办学资源", "师资规模与结构", "人才培养", "科学研究", "服务社会", "学术人才", "重大项目与成果", "国际竞争力"];

// 筛选出C9院校
var data = [];
for (var i = 0; i < raw.length; i++) {
   
    if (C9.includes(raw[i]["学校名称"])) {
   
        data.push(raw[i]);
    }
}

// 构造所需格式的数据
var scores = [];
for (var i = 0; i < ST.length; i++) {
   
    var score = [];
    for (var j = 0; j < data.length; j++) {
   
        score.push(data[j][ST[i]]);
    }
    scores.push(score);
}

// 构造一系列图表
var series = [];
for (var i = 0; i < 10; i++) {
   
    series.push({
   
        name: ST[i],
        type: 'line',
        stack: 'Total',
        areaStyle: {
   },
        emphasis: {
   
            focus: 'series'
        },
        data: scores[i]
    });
}

// 配置图表
option = {
   
    tooltip: {
   
        trigger: 'axis',
        axisPointer: {
   
            type: 'cross',
            label: {
   
                backgroundColor: '#6a7985'
            }
        }
    },
    legend: {
   
        top: '5%',
        data: ST
    },
    grid: {
   
        left: '3%',
        right: '4%',
        bottom: '3%',
        containLabel: true
    },
    xAxis: [
        {
   
            type: 'category',
            boundaryGap: false,
            data: C9
        }
    ],
    yAxis: [
        {
   
            type: 'value'
        }
    ],
    series: series
};

// 将ECharts放到盒子里
var myChart = echarts.init(document.getElementById('main'));

// 指定配置与数据
myChart.setOption(option);

 
 


Stacked Horizontal Chart(堆叠条形图)

Description:和上面的堆叠面积图类似,不仅展现了总分的对比,还可以进行总分各组成成分的横向对比。

Example:下图同样展现了我国C9院校(2028)的得分及其得分组成情况,结论同上方堆叠面积图。

在这里插入图片描述
Code

// 中国C9院校(这里偷懒将排名写死~)
const C9 = ["清华大学", "北京大学", "浙江大学", "上海交通大学", "南京大学", "复旦大学", "中国科学技术大学", "西安交通大学", "哈尔滨工业大学"];
// 各个比较维度(这里也偷懒写死了~)
const ST = ["办学层次", "学科水平", "办学资源", "师资规模与结构", "人才培养", "科学研究", "服务社会", "学术人才", "重大项目与成果", "国际竞争力"];

// 筛选出C9院校
var data = [];
for (var i = 0; i < raw.length; i++) {
   
    if (C9.includes(raw[i]["学校名称"])) {
   
        data.push(raw[i]);
    }
}

// 构造所需格式的数据
var scores = [];
for (var i = 0; i < ST.length; i++) {
   
    var score = [];
    for (var j = 0; j < data.length; j++) {
   
        score.push(data[j][ST[i]]);
    }
    scores.push(score.reverse());
}

// 构造一系列图表
var series = [];
for (var i = 0; i < 10; i++) {
   
    series.push({
   
        name: ST[i],
        type: 'bar',
        stack: 'total',
        label: {
   
            show: true
        },
        emphasis: {
   
            focus: 'series'
        },
        data: scores[i]
    });
}

// 配置图表
option = {
   
    tooltip: {
   
        trigger: 'axis',
        axisPointer: {
   
            type: 'shadow'
        }
    },
    legend: {
   
        top: '3%'
    },
    grid: {
   
        left: '3%',
        right: '4%',
        bottom: '3%',
        containLabel: true
    },
    xAxis: {
   
        type: 'value'
    },
    yAxis: {
   
        type: 'category',
        data: C9.reverse()
    },
    series: series
};

// 将ECharts放到盒子里
var myChart = echarts.init(document.getElementById('main'));

// 指定配置与数据
myChart.setOption(option);

 
 


Chinese Distribution Map(中国分布地图)

Description:以省份为单位,统计了我国大学的分布情况。光标悬浮时即可显示该省大学数量。另外,为了更直观展现我国大学的地区分布规律,地图用红色(#8debff)和蓝色(#ff8dab)进行着色。颜色越红,该省大学数量越多;颜色越蓝,该省大学数量越少;灰色表示暂无数据信息。

Example:从局部来看,江苏拥有最高的大学数量(37所),青海、西藏、宁夏拥有最少的大学数量(仅1所);从整体来看,我国大学分布呈现“西部少,东部多,不平衡”的特征,这其实与客观地理位置、教育资源投资、经济发展水平等因素息息相关。

在这里插入图片描述

Code

// 统计大学分布
var locate = {
   };
for (var i = 0; i < raw.length; i++) {
   
    if (raw[i]["省市"] in l
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值