中国大学综合排名
1、导包
from pyecharts.charts import Map, Bar, Pie
from pyecharts import options as opts
from pyecharts.render import make_snapshot
import pandas as pd
from snapshot_selenium import snapshot
2、数据清洗
df = pd.read_excel("./xlsx/中国大学综合排名2021.xlsx" )
print (df.head())
print (df.dtypes)
print (df.describe())
print (df.isnull().sum ())
df["升/降" ].fillna(0 , inplace=True )
print (df.isnull().sum ())
df.fillna(0 , inplace=True )
print (df.describe())
print (df[df["升/降" ] == 0 ])
print (df.loc[(df["排名" ] < 50 ) & (df["升/降" ] < 0 ), :])
3、数据可视化
1. 各省市大学数量和平均分柱状图(横向)
df_counts = df.groupby('省市' )['学校名称' ].agg("count" )
df_means0 = df.groupby('省市' )['总分' ].agg("mean" )
df_means = df_means0.round (2 )
df1 = pd.concat([df_counts, df_means], axis=1 )
df1.columns = ['数量' , '平均分' ]
df1.sort_values(by=['平均分' ], ascending=False , inplace=True )
d1 = df1.index.tolist()
d2 = df1["数量" ].values.tolist()
d3 = df1["平均分" ].values.tolist()
bar = (
Bar(init_opts=opts.InitOpts(bg_color="white" ))
.add_xaxis(d1)
.add_yaxis("数量" , d2)
.add_yaxis("平均分数" , d3)
.set_global_opts(title_opts=opts.TitleOpts(title="中国大学排名" ),
yaxis_opts=opts.AxisOpts(name="量" ),
xaxis_opts=opts.AxisOpts(name="省份" ))
)
make_snapshot(snapshot, bar.render("./html/ChinaBarX.html" ), "./img/ChinaBarX.png" )
2. 各省市大学数量和平均分柱状图(纵向)
df1.sort_values(by=['平均分' ], ascending=True , inplace=True )
d1 = df1.index.tolist()
d2 = df1["数量" ].values.tolist()
d3 = df1["平均分" ].values.tolist()
bar = (
Bar(init_opts=opts.InitOpts(bg_color="white" ))
.add_xaxis(d1)
.add_yaxis("数量" , d2)
.add_yaxis("平均分数" , d3)
.reversal_axis()
.set_series_opts(label_opts=opts.LabelOpts(position='right' ))
.set_global_opts(title_opts=opts.TitleOpts(title="中国大学排名" ),
yaxis_opts=opts.AxisOpts(name="量" ),
xaxis_opts=opts.AxisOpts(name="省份" ))
)
make_snapshot(snapshot, bar.render("./html/ChinaBarY.html" ), "./img/ChinaBarY.png" )
3. 各省市大学数量玫瑰图
city = df_counts.index.tolist()
num = df_counts.values.tolist()
pie = (
Pie(init_opts=opts.InitOpts(bg_color="white" ))
.add("" , [list (z) for z in zip (city, num)], radius=["20%" , "60%" ], center=["50%" , "55%" ], rosetype="radius" )
.set_series_opts(label_opts=opts.LabelOpts(formatter='{b}:{d}%' ))
)
make_snapshot(snapshot, pie.render("./html/meiguiPie.html" ), "./img/meiguiPie.png" )
4. 各省市大学数量南丁格尔玫瑰图
df_counts.sort_values(ascending=False , inplace=True )
pro = df_counts.index.tolist()
nums = df_counts.values.tolist()
piendge = (
Pie(init_opts=opts.InitOpts(bg_color="white" ))
.add("" , [list (z) for z in zip (pro, nums)], radius=["30%" , "105%" ], center=["50%" , "60%" ], rosetype="area" )
.set_global_opts(title_opts=opts.TitleOpts(title="中国大学排名" ), legend_opts=opts.LegendOpts(is_show=False ))
.set_series_opts(
label_opts=opts.LabelOpts(is_show=True , position="inside" , formatter='{b}:{c}' , font_weight="bold" ,
font_size=15 ))
)
make_snapshot(snapshot, piendge.render("./html/NdgePie.html" ), "./img/NdgePie.png" )
5. 中国大学排名地图
citys = df_counts.index.tolist()
res = df_counts.values.tolist()
map = (
Map(init_opts=opts.InitOpts(bg_color="white" ))
.add("" , [list (z) for z in zip (citys, res)], "china" )
.set_global_opts(title_opts=opts.TitleOpts(title="中国大学排名" ),
visualmap_opts=opts.VisualMapOpts(is_show=True , max_=40 , split_number=8 , is_piecewise=True ))
)
make_snapshot(snapshot, map .render("./html/ChinaMap.html" ), "./img/ChinaMap.png" )
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人