🧑 博主简介:曾任某智慧城市类企业
算法总监
,目前在美国市场的物流公司从事高级算法工程师
一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907
)
💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。
【数据可视化-11】全国大学数据可视化分析
- 一、引言
- 二、导入分析库与数据清洗
- 三、pyecharts可视化实践
- 3.1 高校地理分布图
- 3.2 全国不同类型大学数量情况
- 3.3 高校类型与层次分析图
- 3.4 全国不同大学隶属情况
- 3.5 高校的坐标点位分析
- 四、结论与展望
一、引言
本文将带你一起探索一份全国高校数据集,通过pyecharts
这一强大的Python可视化库,将抽象的数据转化为直观的图表,揭示高校分布、类型、层次以及各类标签(如985、211、双一流)之间的关联与差异。
二、导入分析库与数据清洗
导入相应的分析库并进行数据加载。
import pandas as pd
from collections import Counter
###画图
from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.globals import ThemeType
from pyecharts.charts import Bar, Pie, Timeline
from pyecharts.faker import Faker
df = pd.read_csv("全国大学数据.csv",encoding='gbk')
df.head()
数据具体的格式如下:
对省份字段进行标准化处理:
province_mapping = {
'北京':"北京市",
'天津':"天津市",
'河北':"河北省",
'山西':"山西省",
'内蒙古':"内蒙古自治区",
'辽宁':"辽宁省"...
}
df['省份'] = df['省份'].map(province_mapping)
三、pyecharts可视化实践
3.1 高校地理分布图
使用pyecharts的Map
组件,我们可以直观地展示全国高校的地理分布情况。通过颜色深浅或图标大小来反映各省份高校数量的多少,让读者一眼就能看出哪些地区是高等教育的重镇。同时,结合交互功能,读者可以点击地图上的省份,查看详细的高校列表。
from pyecharts.charts import Map
from pyecharts import options as opts
import pandas as pd
# 假设df为预处理后的DataFrame
province_counts = df['省份'].value_counts().reset_index()
province_counts.columns = ['省份', '高校数量']
map_chart = (
Map()
.add("高校数量", [list(z) for z in zip(province_counts['省份'], province_counts['高校数量'])], "china")
.set_global_opts(
title_opts=opts.TitleOpts(title="全国高校地理分布"),
visualmap_opts=opts.VisualMapOpts(max_=max(province_counts['高校数量'])),
)
)
map_chart.render("高校地理分布图.html")
从图中我们可以发现高校数量最多是江苏省,拥有168所搞笑;长三角地区的高校明显高于其它地区,中部四川省高校最多,南部广东省高校最多,西部地区高校分布的数量相对较少;
3.2 全国不同类型大学数量情况
un_type = df['类型'].tolist()
result = Counter(un_type)
# 排序
d = sorted(result.items(), key=lambda x: x[1], reverse=True)
print(d)
key = [i[0] for i in d]
value = [i[1] for i in d]
# 链式调用
bar = (
Bar(
init_opts=opts.InitOpts( # 初始配置项
theme=ThemeType.MACARONS,
animation_opts=opts.AnimationOpts(
animation_delay=1000, animation_easing="cubicOut" # 初始动画延迟和缓动效果
))
)
.add_xaxis(xaxis_data=key) # x轴
.add_yaxis(series_name="全国不同类型大学数量情况", y_axis=value) # y轴
.set_global_opts(
title_opts=opts.TitleOpts(title='', subtitle='', # 标题配置和调整位置
title_textstyle_opts=opts.TextStyleOpts(
font_family='SimHei', font_size=25, font_weight='bold', color='red',
), pos_left="90%", pos_top="10",
),
xaxis_opts=opts.AxisOpts(name='类型', axislabel_opts=opts.LabelOpts(rotate=45)),
# 设置x名称和Label rotate解决标签名字过长使用
yaxis_opts=opts.AxisOpts(name='数量'),
)
)
bar.render("全国不同类型大学数量情况.html")
从图中我们可以发现理工类和综合类的院校最多,也就是高考时理科照生多的原因;
3.3 高校类型与层次分析图
接下来,我们利用Pie
和Bar
组件来分析高校的类型与层次。通过饼图展示公办与民办高校的占比,通过条形图展示本科与专科高校的分布情况。这些图表不仅能够帮助我们了解高校的构成,还能揭示不同类型与层次高校之间的差异。
attr = df['公或民办'].tolist()
result = Counter(attr)
# 排序
d = sorted(result.items(), key=lambda x: x[1], reverse=True)
print(d)
key = [i[0] for i in d]
value = [i[1] for i in d]
pie = (
Pie()
.add(
"公或民办类型数量",
[list(z) for z in zip(key, value)],
rosetype="radius",
radius=["30%", "55%"],
)
.set_global_opts(title_opts=opts.TitleOpts("公或民办类型数量"))
)
pie.render("公办与民办高校占比图.html")
从图书可以看出高校有三种出资方式,分别是公办、民办和中外合作办学;其中公办的高校最多有2010所。
# 分析本科与专科高校的分布情况
undergraduate_vocational_distribution = df['本或专科'].value_counts()
undergraduate_vocational_distribution = undergraduate_vocational_distribution.reset_index()
undergraduate_vocational_distribution.columns = ['层次', '数量']
# 创建条形图展示本科与专科高校的分布情况
bar_chart = (
Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
.add_xaxis(undergraduate_vocational_distribution['层次'].tolist())
.add_yaxis("高校数量", undergraduate_vocational_distribution['数量'].tolist())
.set_global_opts(
title_opts=opts.TitleOpts(title="本科与专科高校分布情况"),
xaxis_opts=opts.AxisOpts(name="层次"),
yaxis_opts=opts.AxisOpts(name="数量"),
)
)
bar_chart.render("本科与专科高校分布图.html")
从图中可以发现高校中本科和专科数据差不多持平。
3.4 全国不同大学隶属情况
最后,我们利用Scatter
或Graph
组件分析城市与高校之间的关联。通过散点图展示各城市高校的数量与分布,或者通过关系图展示城市与高校之间的隶属关系。
attr = data['隶属于'].tolist()
result = Counter(attr)
# 排序
d = sorted(result.items(), key=lambda x: x[1], reverse=True)
print(d)
key = [i[0] for i in d]
value = [i[1] for i in d]
c = (
Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
.add_xaxis(xaxis_data=key)
.add_yaxis("数量", y_axis=value)
.set_global_opts(
title_opts=opts.TitleOpts(title="全国不同大学隶属情况"),
datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_="inside")],
)
)
c.render_notebook()
从图中可以看到各个不同单位管理高校的数量,其中河南省管理的高校数量最多,教育部直属管的高校有84所等
3.5 高校的坐标点位分析
可以使用百度的地名地址解析接口,将高校的地址转成经纬度,经纬度转成热力图如下;
四、结论与展望
通过本次全国高校数据集的可视化探索,我们不仅直观地展示了高校的地理分布、类型与层次、标签情况以及与城市的关联,还深刻理解了数据可视化的力量。它让我们能够以前所未有的方式洞察数据背后的故事,为教育决策提供了有力的支持。