【数据可视化-10】国防科技大学录取分数线可视化分析

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907
💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

【数据可视化-10】国防科技大学录取分数线可视化分析

  • 一、引言
  • 二、数据准备
  • 三、Pyecharts简介
  • 四、数据可视化分析
    • [4.1 省份理科一本线分布图](#4.1 省份理科一本线分布图)
    • [4.2 工程技术类录取分数分布图](#4.2 工程技术类录取分数分布图)
    • [4.3 学历教育合训类录取分数分布图](#4.3 学历教育合训类录取分数分布图)
    • [4.4 分数结合地图的展示](#4.4 分数结合地图的展示)
      • [4.4.1 地图热力图](#4.4.1 地图热力图)
      • [4.4.2 3D地图+3D柱状图工程技术类录取最高分情况](#4.4.2 3D地图+3D柱状图工程技术类录取最高分情况)
  • 五、结论

一、引言

在当今信息爆炸的时代,数据可视化成为了一种强有力的工具,能够帮助我们直观地理解和分析复杂的数据集。本文将利用Python的Pyecharts库,对国防科技大学2016年的录取分数数据进行可视化分析。通过图表展示,我们可以清晰地看到不同省份的录取分数分布情况,为考生和家长提供有价值的参考信息。

二、数据准备

首先,我们需要准备好国防科技大学2016年的录取分数数据。数据包含以下字段:省份、理科一本线、工程技术类最高分、工程技术类最低分、工程技术类平均分、学历教育合训类最高分、学历教育合训类最低分、学历教育合训类平均分。以下是部分数据示例:

省份 理科一本线 工程技术类最高分 工程技术类最低分 工程技术类平均分 学历教育合训类最高分 学历教育合训类最低分 学历教育合训类平均分
北京 548 662 607 629 613 570 592
天津 512 659 634 649 600 537 567
河北 525 682 654 667 669 640 649
山西 519 639 617 625 638 579 599
内蒙古 484 641 615 627 623 558 597
辽宁 498 660 624 637 641 607 621
吉林 530 658 639 649 634 599 615
黑龙江 486 667 623 641 628 580 600

详细数据参考国防科技大学招生官网国防科技大学招生官网 或者联系我。

三、Pyecharts简介

Pyecharts是一个用于生成Echarts图表的Python库。Echarts是一个使用JavaScript实现的开源可视化库,能够生成丰富的交互式图表。Pyecharts通过将Echarts的图表转化为Python代码,使得在Python环境下也能方便地生成高质量的图表。

四、数据可视化分析

接下来,我们将使用Pyecharts库对国防科技大学2016年的录取分数数据进行可视化分析。

首先导入数据并对数据中的异常值进行清洗,具体代码如下:

python 复制代码
import numpy as np
import pandas as pd

data = pd.read_excel("data.xlsx")

def replace_mean(df,col='A'):
    "col列中的'/'用这一列的均值来替换"
    df[col] = df[col].replace('/', np.nan)
    mean_A = df[col].mean(skipna=True)
    df[col].fillna(mean_A, inplace=True)

for col in ['学历教育合训类最高分','学历教育合训类最低分','学历教育合训类平均分']:
    replace_mean(data,col)

4.1 省份理科一本线分布图

首先,我们绘制一个柱状图,展示不同省份的理科一本线分布情况。

python 复制代码
from pyecharts import options as opts
from pyecharts.charts import Bar


c = (
    Bar()
    .add_xaxis(data['省 份'].tolist())
    .add_yaxis("理科一本线", data['理科一本线'].tolist())
    .set_global_opts(title_opts=opts.TitleOpts(title="国防科技大学2016年理科一本线录取分数", subtitle="各省分数情况分布"))
    .render("bar_base.html")
)

生成的柱状图清晰地展示了不同省份的理科一本线分布情况。可以看到,海南的理科一本线最高,达到了602分,而江苏的理科一本线最低,为353分,但各个地方的总分不同,需要做具体分析,这里就是展示一组数据而已,具体结果不具有参考性。

4.2 工程技术类录取分数分布图

接下来,我们绘制三个折线图,分别展示工程技术类的最高分、最低分和平均分的分布情况。

python 复制代码
import pyecharts.options as opts
from pyecharts.charts import Line


x_data = data['省 份'].tolist()

(
    Line()
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(
        series_name="'理科一本线'",
        stack="总量",
        y_axis=data['理科一本线'].tolist(),
        label_opts=opts.LabelOpts(is_show=False),
    )
    .add_yaxis(
        series_name="工程技术类最高分",
        stack="总量",
        y_axis=data['工程技术类最高分'].tolist(),
        label_opts=opts.LabelOpts(is_show=False),
    )
    .add_yaxis(
        series_name="工程技术类最低分",
        stack="总量",
        y_axis=data['工程技术类最低分'].tolist(),
        label_opts=opts.LabelOpts(is_show=False),
    )
    .add_yaxis(
        series_name="工程技术类平均分",
        stack="总量",
        y_axis=data['工程技术类平均分'].tolist(),
        label_opts=opts.LabelOpts(is_show=False),
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="工程技术类招聘分数"),
        tooltip_opts=opts.TooltipOpts(trigger="axis"),
        yaxis_opts=opts.AxisOpts(
            type_="value",
            axistick_opts=opts.AxisTickOpts(is_show=True),
            splitline_opts=opts.SplitLineOpts(is_show=True),
        ),
        xaxis_opts=opts.AxisOpts(type_="category", boundary_gap=False),
    )
    .render("stacked_line_chart.html")
)

生成的折线图展示了工程技术类在不同省份的最高分、最低分和平均分的分布情况。可以看到,工程技术类的最高分和平均分在海南最高,分别为829分和750分;而最低分在江苏最高,为404分。

4.3 学历教育合训类录取分数分布图

类似地,我们绘制三个折线图,展示学历教育合训类的最高分、最低分和平均分的分布情况。

python 复制代码
# 数据准备
scores_edu_max = [613, 600, 669, 638, 623, 641, 634, 628]
scores_edu_min = [570, 537, 640, 579, 558, 607, 599, 580]
scores_edu_avg = [592, 567, 649, 599, 597, 621, 615, 600]

# 创建折线图
line = Line()
line.add_xaxis(provinces)
line.add_yaxis("学历教育合训类最高分", scores_edu_max)
line.add_yaxis("学历教育合训类最低分", scores_edu_min)
line.add_yaxis("学历教育合训类平均分", scores_edu_avg)

# 设置全局配置项
line.set_global_opts(
    title_opts=opts.TitleOpts(title="学历教育合训类录取分数分布图"),
    yaxis_opts=opts.AxisOpts(name="分数"),
    xaxis_opts=opts.AxisOpts(name="省份"),
    legend_opts=opts.LegendOpts(pos_left="left")
)

# 渲染图表
line.render("edu_scores_distribution_chart.html")

生成的折线图展示了学历教育合训类在不同省份的最高分、最低分和平均分的分布情况。可以看到,学历教育合训类的最高分在海南最高;最低分在江苏,和上面的结果一致。

4.4 分数结合地图的展示

4.4.1 地图热力图

首先对省份数据进行清洗

python 复制代码
province_mapping = {
 '北京':"北京市",'天津':"天津市",
 '河北':"河北省",'山西':"山西省",
 '内蒙古':"内蒙古自治区",'辽宁':"辽宁省",
 '吉林':"吉林省",'黑龙江':"黑龙江省",
 '上海':"上海市",'安徽':"安徽省",...
}

data['prov'] = data['省 份'].map(province_mapping)

绘制基于地图的省份理科一本线的详细代码如下:

python 复制代码
from pyecharts import options as opts
from pyecharts.charts import Map

c = (
    Map()
    .add("学历教育合训类最高分", [list(z) for z in zip(data['prov'].tolist(), data['学历教育合训类最高分'].tolist())], "china")
    .set_global_opts(
        title_opts=opts.TitleOpts(title="国防科技大学学历教育合训类最高分分布"),
        visualmap_opts=opts.VisualMapOpts(max_=max(data['学历教育合训类最高分'].tolist()),
        min_=min(data['学历教育合训类最高分'].tolist())),
    )
    .render("map_visualmap.html")
)

4.4.2 3D地图+3D柱状图工程技术类录取最高分情况

首先对数据进行清洗,做成绘图需要的数据结构,具体的数据结构如下:

python 复制代码
[('广东', [113.27, 23.13, 641]),
 ('黑龙江', [127.9688, 45.368, 667]),
 ('内蒙古', [110.3467, 41.4899, 641]),
 ('吉林', [125.8154, 44.2584, 658]),
 ('辽宁', [123.1238, 42.1216, 660]),
 ('河北', [114.4995, 38.1006, 682]),
 ('天津', [117.4219, 39.4189, 659]),
 ('山西', [112.3352, 37.9413, 639]),
 ('陕西', [109.1162, 34.2004, 665]),
 ('甘肃', [103.5901, 36.3043, 632]),
 ('宁夏', [106.3586, 38.1775, 637]),
 ('青海', [101.4038, 36.8207, 596]),
 ('新疆', [87.9236, 43.5883, 673]),
 ('西藏', [91.11, 29.97, 0]),
 ('四川', [103.9526, 30.7617, 665]),
 ('重庆', [108.384366, 30.439702, 671]),
 ('山东', [117.1582, 36.8701, 679]),
 ('河南', [113.4668, 34.6234, 665]),
 ('江苏', [118.8062, 31.9208, 404]),
 ('安徽', [117.29, 32.0581, 655]),
 ('湖北', [114.3896, 30.6628, 665]),
 ('浙江', [119.5313, 29.8773, 692]),
 ('福建', [119.4543, 25.9222, 632]),
 ('江西', [116.0046, 28.6633, 645]),
 ('湖南', [113.0823, 28.2568, 662]),
 ('贵州', [106.6992, 26.7682, 671]),
 ('广西', [108.479, 23.1152, 642]),
 ('海南', [110.3893, 19.8516, 829]),
 ('上海', [121.4648, 31.2891, 489])]

以('广东', [113.27, 23.13, 641])为例,'广东'表示省份,[113.27, 23.13]表示广东的经纬度,而641表示国防科技大学在广东省工程技术类招聘的最高分为641分;

具体的绘图代码如下:

python 复制代码
import pyecharts.options as opts
from pyecharts.charts import Map3D
from pyecharts.globals import ChartType
 
map3d = (
    # 3D地图
    Map3D(
        # 初始化配置项
        init_opts=opts.InitOpts(
            theme='white',  # 图表主题 white dark
            width='99vw',  # 图表画布宽度
            height='97vh',  # 图标画布长度
        )
    )
    # !!!!全局配置项!!!!
    .set_global_opts(
        # 标题配置项
        title_opts=opts.TitleOpts(
            title="3D地图+柱状图",  # 主标题
        ),
        # 视觉映射配置项
        visualmap_opts=opts.VisualMapOpts(
            is_show=True,  # 是否显示视觉映射配置
            max_=1000,  # 指定 visualMapPiecewise 组件的最大值
        ),
    )
    # !!!!系列配置项!!!!
    .set_series_opts(
        # 标签名称显示,默认为True
        label_opts=opts.LabelOpts(
            is_show=True  # 是否显示标签名字
        )
    )
    .add_schema(
        # 地图类型
        maptype='china',
        # 图元样式配置项
        itemstyle_opts=opts.ItemStyleOpts(
            # 图形的颜色
            color="#1661AB",
            # 描边宽度,默认不描边。
            border_width=0.8,
            # 图形的描边颜色。支持的颜色格式同 color,不支持回调函数。
            border_color="rgb(62,215,213)"
        ),
    )
    # 数据配置
    .add(
        # 系列名称,用于 tooltip 的显示,legend 的图例筛选
        series_name='人数',
        # 数据项 (坐标点名称,坐标点值)
        data_pair=data_pair,
        # 叠加图的类型(目前只支持 Bar3D,Line3D,Lines3D,Scatter3D)
        type_=ChartType.BAR3D,
        # 柱体大小
        bar_size=1,
    )
)
map3d.render("3D_Map.html")

五、结论

通过对国防科技大学2016年的录取分数数据进行可视化分析,我们可以得出以下结论:

不同省份的高考总分不同,具体结果不具有实际意义,但并不影响数据可视化分析的流程;

相关推荐
羊小猪~~10 分钟前
深度学习基础--CNN经典网络之InceptionV1研究与复现(pytorch)
网络·人工智能·pytorch·深度学习·神经网络·机器学习·cnn
硅谷秋水31 分钟前
AutoEval:现实世界中通才机器人操作策略的自主评估
人工智能·机器学习·计算机视觉·机器人
weixin_4578858235 分钟前
DeepSeek的神经元革命:穿透搜索引擎算法的下一代内容基建
人工智能·算法·搜索引擎·deepseek·虎跃办公
大模型真好玩38 分钟前
不写一行代码! VsCode+Cline+高德地图MCP Server 帮你搞定和女友的出行规划(附原理解析)
人工智能·python·mcp
zskj_zhyl1 小时前
数据驱动的温暖守护:智慧康养平台如何实现 “千人千面” 的精准照护?
人工智能·科技·生活
视觉语言导航1 小时前
ICRA-2025 | 视觉预测助力机器人自主导航!NavigateDiff:视觉引导的零样本导航助理
人工智能·机器人·具身智能
Seon塞翁1 小时前
2025年Q1 AI 学习应用总结
人工智能·学习
jndingxin1 小时前
OpenCV 图形API(30)图像滤波-----腐蚀操作函数erode()
人工智能·opencv
AIGC-Lison1 小时前
Stable Diffusion ComfyUI 基础教程(一) ComfyUI安装与常用插件
人工智能·stable diffusion·教程·ai绘画·sd·sd教程
__Benco2 小时前
OpenHarmony子系统开发 - 热管理(四)
人工智能·harmonyos