本期导读
大家好,我是欧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编程技巧推送,希望大家可以喜欢