问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

【可视化】2024中国大学排行榜可视化分析

创作时间:
作者:
@小白创作中心

【可视化】2024中国大学排行榜可视化分析

引用
CSDN
1.
https://blog.csdn.net/m0_38065162/article/details/140363528

本文旨在利用Python中的pyecharts、pandas库对软科2024中国大学排行榜进行分析,并进行可视化展示。

相关库简介

pyecharts是一个基于 Python 的数据可视化库,用于生成精美的图表。它是对百度的 Echarts 的封装,提供了简单易用的接口,可以创建多种类型的图表,如折线图、柱状图、饼图、散点图、地图等。

pyecharts提供了多个模块,每个模块用于创建不同类型的图表:

  • Line:折线图
  • Bar:柱状图
  • Pie:饼图
  • Scatter:散点图
  • Map:地图
  • HeatMap:热力图
  • Geo:地理坐标图

pandas是一个用于数据操作和分析的开源 Python 库,提供了高性能、易于使用的数据结构和数据分析工具。pandas基于NumPy库构建,特别适用于处理表格数据(类似于电子表格中的数据)。主要功能:

  • 数据读取与写入:从 CSV、Excel、SQL 等格式读取数据,写入数据到这些格式。
  • 数据选择和过滤:基于标签、位置或条件选择和过滤数据。
  • 数据变换:如数据重塑、合并、连接和分组操作。
  • 统计分析:提供常见的统计功能,如描述性统计、频率表、相关性分析等。
  • 时间序列分析:处理时间序列数据,支持频率转换、滑动窗口计算等。

安装pyecharts、pandas

pip install pyecharts
pip install pandas

代码实现

导入相关库

# 导入相关库
import pandas as pd
from pyecharts.charts import Bar
from pyecharts.charts import Map
from pyecharts.charts import Pie
from pyecharts import options as opts

加载数据

# 数据读取
# 软科爬取的2024年主榜名单
df_school = pd.read_csv('university_rankings.csv')
df_school.head(20)

本次使用数据来源于软科2024年中国大学排行榜主榜,爬取过程会在下篇文章介绍。数据示例:

绘制饼图–2024中国大学各类型占比

# 定义绘制饼图的函数
def get_pie1(df_type_count):
    pie1 = (
        Pie(init_opts=opts.InitOpts(theme='dark', bg_color='#0d0735'))  # 设置主题和背景色
        .add(
            "",
            [list(z) for z in zip(df_type_count['类型'].tolist(), df_type_count['学校数量'].tolist())],
            radius=["40%", "70%"],  # 设置饼图为环状饼图
            label_opts=opts.LabelOpts(
                is_show=True,
                position="outside",  # 标签位置
                formatter="{b}: {d}%",  # 显示百分比
                font_size=12,  # 标签字体大小
            )
        )
        .set_colors(['#e94e77', '#f4a261', '#2a9d8f', '#264653', '#e9c46a'])  # 定义饼图颜色
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='2024中国大学各类型占比',
                subtitle='@公众号:AI拾贝',
                pos_top='1%',
                pos_left="1%",
            ),
        )
    )
    return pie1

绘制柱状图–2024中国大学综合排名TOP20

# 定义绘制柱状图的函数
def get_bar1(df_top20):
    bar = (
        Bar(init_opts=opts.InitOpts(theme='dark', bg_color='#0d0735'))  # 设置背景颜色为深蓝色
        .add_xaxis(df_top20['中文名'].tolist())  # 将中文名作为横坐标
        .add_yaxis('', df_top20['分数'].tolist())  # 分数作为纵坐标
        .reversal_axis()  # 交换 x 和 y 轴
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='2024中国大学综合排名TOP20',
                subtitle='@公众号:AI拾贝',
                pos_top='1%',
                pos_left="1%",
                title_textstyle_opts=opts.TextStyleOpts(color='#FFFFFF')  # 设置标题字体颜色为白色
            ),
            visualmap_opts=opts.VisualMapOpts(is_show=False),
            xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(color='#FFFFFF')),  # 设置x轴标签颜色为白色
            yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(color='#FFFFFF'))   # 设置y轴标签颜色为白色
        )
    )
    return bar

绘制玫瑰图–2024中国各省地区大学数量分布

# 定义绘制玫瑰图的函数
def get_rose_chart(df_count):
    pie = (
        Pie(init_opts=opts.InitOpts(bg_color='#0d0735'))  # 设置背景色
        .add(
            "",
            [list(z) for z in zip(df_count['省份'], df_count['学校数量'])],
            radius=["15%", "80%"],  # 内外径
            rosetype="area"  # 玫瑰图类型
        )
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='2024中国各省地区大学数量分布',
                subtitle='@公众号:AI拾贝',
                pos_top='1%',
                pos_left="1%",
                title_textstyle_opts=opts.TextStyleOpts(color='#fff200', font_size=20)
            ),
            legend_opts=opts.LegendOpts(is_show=False),
        )
        .set_series_opts(
            label_opts=opts.LabelOpts(is_show=True, position="outside", formatter="{b}: {c} 所"),
        )
    )
    return pie

绘制地图–全国高校分布地图

# 定义绘制地图的函数
def get_map1(df_school_count):
    m1 = (
        Map(init_opts=opts.InitOpts(theme='dark', width='1000px', height='600px', bg_color='#0d0735'))
        .add('',
             [list(z) for z in zip(df_school_count['省份'].tolist(), df_school_count['学校数量'].tolist())],
             maptype='china',
             is_map_symbol_show=True,  # 显示地图符号
             label_opts=opts.LabelOpts(is_show=True, color='black'),  # 显示标签,字体颜色为黑色
             itemstyle_opts=opts.ItemStyleOpts(
                 border_color='#fff',  # 行政区划线颜色
                 border_width=1  # 行政区划线宽度
             )
        )
        .set_global_opts(
            visualmap_opts=opts.VisualMapOpts(
                is_show=True,
                max_=50,
                series_index=0,
                pos_top='60%',
                pos_left='10%',
                # 使用默认的颜色范围
                range_color=None
            ),
            tooltip_opts=opts.TooltipOpts(formatter='{b}:{c}'),
            title_opts=opts.TitleOpts(
                title='全国高校分布地图',
                subtitle='@公众号:AI拾贝',
                pos_top='2%',
                pos_left="2%",
                title_textstyle_opts=opts.TextStyleOpts(color='#fff200', font_size=20)
            )
        )
    )
    return m1

由于篇幅有限,仅展示下绘图函数,具体数据处理的过程,感兴趣的同学可以关注公众号回复关键词获取。

结果展示

饼图–2024中国大学各类型占比

柱状图–2024中国大学综合排名TOP20

玫瑰图–2024中国各省地区大学数量分布

地图–全国高校分布地图

如上,直接在notbook中展示地图数据。如果想保存成html文件,只需要把render_notebook()函数,换成render()即可。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号