【数据可视化-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年的录取分数数据进行可视化分析,我们可以得出以下结论:

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

相关推荐
ShuQiHere5 分钟前
【ShuQiHere】算法的开枝散叶:从机器学习到深度学习的模型总结
深度学习·算法·机器学习
禁默8 分钟前
第四届计算机、人工智能与控制工程
人工智能·控制工程
伊一大数据&人工智能学习日志9 分钟前
机器学习经典算法——逻辑回归
人工智能·算法·机器学习·逻辑回归
清弦墨客11 分钟前
【机器学习】交叉验证:数据世界的“多面侦探”
人工智能·python·机器学习
B站计算机毕业设计超人18 分钟前
计算机毕业设计Python+Vue.js游戏推荐系统 Steam游戏推荐系统 Django Flask 游 戏可视化 游戏数据分析 游戏大数据 爬虫
大数据·hadoop·算法·机器学习·spark·网络爬虫·数据可视化
程序猿阿伟27 分钟前
《解密奖励函数:引导智能体走向最优策略》
人工智能
远洋录32 分钟前
Tailwind CSS 实战:表单设计与验证实现
前端·人工智能·react
AI完全体33 分钟前
【AI日记】25.01.03 kaggle 比赛 3-2 未来的命运
人工智能·机器学习·读书·kaggle 比赛
猫头不能躺38 分钟前
【pytorch】现代循环神经网络-2
人工智能·pytorch·rnn