可视化 | 动起来的中国大学排名,看看你的母校在哪里

大家好,我是欧K。

软科中国大学排以专业、客观、透明的优势赢得了高等教育领域和社会的广泛关注和认可,本期我们将使用python中的pyecharts模块对2020年中国大学排名进行一番研究,看看我国高校的分布情况,希望对你有所帮助。
在这里插入图片描述

1. 网页分析

1.1 大学排名

网址:https://www.shanghairanking.cn/rankings/bcur/2020

首先,分析一下网页,在排行榜的主榜,网站一共收录了567所高校,我们主要获取排名,学校名称,省市和总分4个字段。
在这里插入图片描述

通过网页源码分析,在网页交互过程中可以看到如下一条记录,包含了我们所要请求的字段:
在这里插入图片描述

1.2 数据测试

根据url直接请求:

def getHTMLText(url):
    try:
        headers = {
            'Referer': 'https://www.shanghairanking.cn/rankings/bcur/2020',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
        }
        r=requests.get(url,headers=headers,timeout=30)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        print(r.text)
        return r.text
    except:
        return 'req faild!'

部分输出日志如下:
在这里插入图片描述

接下来通过正则表达式或者json格式解析就可以了,这里不再赘述,最后我们将信息保存到csv文件,进行后期分析。
在这里插入图片描述

2. pycharts可视化

2.1 安装pyecharts

pip install pyecharts

提示:如果安装过慢可替换国内镜像安装。

2.2 导入需要的包

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.charts import Pie
from pyecharts.charts import Map
import pandas as pd

2.3 各省份高校数量和平均得分柱状图

代码:

bar = (
    Bar()
    .add_xaxis(l1)
    .add_yaxis("数量", l2)
    .add_yaxis("平均分数", l3)
    .reversal_axis()
    .set_series_opts(label_opts=opts.LabelOpts(position="right"))
    .set_global_opts(
        yaxis_opts=opts.AxisOpts(name="省份"),
        xaxis_opts=opts.AxisOpts(name="量"),
        datazoom_opts=opts.DataZoomOpts(type_="inside")
    )
    .render('2020中国大学排名纵向柱状图.html')
)

效果:
在这里插入图片描述

上图是纵向分布和缩放,当然做成横向缩放也是可以的:

在这里插入图片描述

2.4 各省份高校数量南丁格尔玫瑰图

代码:

c = (
    Pie()
    .add("", [list(z) for z in zip(provinces, num)],
         radius=["30%", "105%"],
         rosetype="area"
         )
    .set_global_opts(title_opts=opts.TitleOpts(title='2020中国大学排名'),
                     legend_opts=opts.LegendOpts(is_show=False),
                     toolbox_opts=opts.ToolboxOpts())
    .set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="inside", font_size=12,
                                               formatter="{b}: {c}", font_style="italic",
                                               font_weight="bold", font_family="Microsoft YaHei"
                                               ))
    .render('2020中国大学排名南丁格尔玫瑰图.html')
)

效果:
在这里插入图片描述

2.5 各省份高校数量中国地图分布图

代码:

c = (
        Map()
        .add("", [list(z) for z in zip(name, count)], "china")
        .set_global_opts(
            title_opts=opts.TitleOpts(title="2020中国大学排名"),
            visualmap_opts=opts.VisualMapOpts(max_=40, split_number=8, is_piecewise=True),
        )
        .render('2020中国大学排名中国地图.html')
    )

效果:
在这里插入图片描述

从图上我们大致可以看出,我国的高校基本上分布在中部和东部地区,像江苏,山东,河南,湖北,湖南,四川,以及部分直辖市等地。

往期推荐

技巧 | Python 字典用法详解(超全)
技巧 | Python 列表经典使用技巧
技巧 | 20个Pycharm最实用最高效的快捷键(动态展示)
可视化 | Python制作最炫3D可视化地图
可视化 | Python时间序列化NBA球星赛季数据

以上就是本期为大家整理的全部内容了,赶快练习起来吧,喜欢的朋友可以点赞、收藏也可以分享到朋友圈让更多人知道哦

更多内容:动起来的中国大学排名,看看你的母校在哪里

微信公众号 “Python当打之年” ,每天都有python编程技巧推送,希望大家可以喜欢
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Python当打之年

您的鼓励是我创作的最大动力!

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

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

打赏作者

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

抵扣说明:

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

余额充值