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

本文旨在利用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()即可。


欢迎关注我的公众号“AI拾贝”,原创技术文章第一时间推送。后台发送”软科“,自动回复源码和数据。

  • 14
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值