🧑 博主簡介:曾任某智慧城市類企業
算法總監
,目前在美國市場的物流公司從事高級算法工程師
一職,深耕人工智能領域,精通python數據挖掘、可視化、機器學習等,發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN人工智能領域的優質創作者,提供AI相關的技術咨詢、項目開發和個性化解決方案等服務,如有需要請站內私信或者聯系任意文章底部的的VX名片(ID:xf982831907
)
💬 博主粉絲群介紹:① 群內初中生、高中生、本科生、研究生、博士生遍布,可互相學習,交流困惑。② 熱榜top10的常客也在群里,也有數不清的萬粉大佬,可以交流寫作技巧,上榜經驗,漲粉秘籍。③ 群內也有職場精英,大廠大佬,可交流技術、面試、找工作的經驗。④ 進群免費贈送寫作秘籍一份,助你由寫作小白晉升為創作大佬。⑤ 進群贈送CSDN評論防封腳本,送真活躍粉絲,助你提升文章熱度。有興趣的加文末聯系方式,備注自己的CSDN昵稱,拉你進群,互相學習共同進步。
【數據可視化-11】全國大學數據可視化分析
- 一、引言
- 二、導入分析庫與數據清洗
- 三、pyecharts可視化實踐
- 3.1 高校地理分布圖
- 3.2 全國不同類型大學數量情況
- 3.3 高校類型與層次分析圖
- 3.4 全國不同大學隸屬情況
- 3.5 高校的坐標點位分析
- 四、結論與展望
一、引言
??本文將帶你一起探索一份全國高校數據集,通過pyecharts
這一強大的Python可視化庫,將抽象的數據轉化為直觀的圖表,揭示高校分布、類型、層次以及各類標簽(如985、211、雙一流)之間的關聯與差異。
二、導入分析庫與數據清洗
??導入相應的分析庫并進行數據加載。
import pandas as pd
from collections import Counter
###畫圖
from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.globals import ThemeType
from pyecharts.charts import Bar, Pie, Timeline
from pyecharts.faker import Fakerdf = pd.read_csv("全國大學數據.csv",encoding='gbk')
df.head()
??數據具體的格式如下:
??對省份字段進行標準化處理:
province_mapping = {'北京':"北京市",'天津':"天津市",'河北':"河北省",'山西':"山西省",'內蒙古':"內蒙古自治區",'遼寧':"遼寧省"...
}df['省份'] = df['省份'].map(province_mapping)
三、pyecharts可視化實踐
3.1 高校地理分布圖
??使用pyecharts的Map
組件,我們可以直觀地展示全國高校的地理分布情況。通過顏色深淺或圖標大小來反映各省份高校數量的多少,讓讀者一眼就能看出哪些地區是高等教育的重鎮。同時,結合交互功能,讀者可以點擊地圖上的省份,查看詳細的高校列表。
from pyecharts.charts import Map
from pyecharts import options as opts
import pandas as pd# 假設df為預處理后的DataFrame
province_counts = df['省份'].value_counts().reset_index()
province_counts.columns = ['省份', '高校數量']map_chart = (Map().add("高校數量", [list(z) for z in zip(province_counts['省份'], province_counts['高校數量'])], "china").set_global_opts(title_opts=opts.TitleOpts(title="全國高校地理分布"),visualmap_opts=opts.VisualMapOpts(max_=max(province_counts['高校數量'])),)
)
map_chart.render("高校地理分布圖.html")
??從圖中我們可以發現高校數量最多是江蘇省,擁有168所搞笑;長三角地區的高校明顯高于其它地區,中部四川省高校最多,南部廣東省高校最多,西部地區高校分布的數量相對較少;
3.2 全國不同類型大學數量情況
un_type = df['類型'].tolist()
result = Counter(un_type)
# 排序
d = sorted(result.items(), key=lambda x: x[1], reverse=True)
print(d)
key = [i[0] for i in d]
value = [i[1] for i in d]# 鏈式調用
bar = (Bar(init_opts=opts.InitOpts( # 初始配置項theme=ThemeType.MACARONS,animation_opts=opts.AnimationOpts(animation_delay=1000, animation_easing="cubicOut" # 初始動畫延遲和緩動效果))).add_xaxis(xaxis_data=key) # x軸.add_yaxis(series_name="全國不同類型大學數量情況", y_axis=value) # y軸.set_global_opts(title_opts=opts.TitleOpts(title='', subtitle='', # 標題配置和調整位置title_textstyle_opts=opts.TextStyleOpts(font_family='SimHei', font_size=25, font_weight='bold', color='red',), pos_left="90%", pos_top="10",),xaxis_opts=opts.AxisOpts(name='類型', axislabel_opts=opts.LabelOpts(rotate=45)),# 設置x名稱和Label rotate解決標簽名字過長使用yaxis_opts=opts.AxisOpts(name='數量'),))
bar.render("全國不同類型大學數量情況.html")
??從圖中我們可以發現理工類和綜合類的院校最多,也就是高考時理科照生多的原因;
3.3 高校類型與層次分析圖
??接下來,我們利用Pie
和Bar
組件來分析高校的類型與層次。通過餅圖展示公辦與民辦高校的占比,通過條形圖展示本科與專科高校的分布情況。這些圖表不僅能夠幫助我們了解高校的構成,還能揭示不同類型與層次高校之間的差異。
attr = df['公或民辦'].tolist()
result = Counter(attr)
# 排序
d = sorted(result.items(), key=lambda x: x[1], reverse=True)
print(d)
key = [i[0] for i in d]
value = [i[1] for i in d]
pie = (Pie().add("公或民辦類型數量",[list(z) for z in zip(key, value)],rosetype="radius",radius=["30%", "55%"],).set_global_opts(title_opts=opts.TitleOpts("公或民辦類型數量"))
)
pie.render("公辦與民辦高校占比圖.html")
??從圖書可以看出高校有三種出資方式,分別是公辦、民辦和中外合作辦學;其中公辦的高校最多有2010所。
# 分析本科與專科高校的分布情況
undergraduate_vocational_distribution = df['本或專科'].value_counts()
undergraduate_vocational_distribution = undergraduate_vocational_distribution.reset_index()
undergraduate_vocational_distribution.columns = ['層次', '數量']# 創建條形圖展示本科與專科高校的分布情況
bar_chart = (Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)).add_xaxis(undergraduate_vocational_distribution['層次'].tolist()).add_yaxis("高校數量", undergraduate_vocational_distribution['數量'].tolist()).set_global_opts(title_opts=opts.TitleOpts(title="本科與專科高校分布情況"),xaxis_opts=opts.AxisOpts(name="層次"),yaxis_opts=opts.AxisOpts(name="數量"),)
)
bar_chart.render("本科與專科高校分布圖.html")
??從圖中可以發現高校中本科和專科數據差不多持平。
3.4 全國不同大學隸屬情況
??最后,我們利用Scatter
或Graph
組件分析城市與高校之間的關聯。通過散點圖展示各城市高校的數量與分布,或者通過關系圖展示城市與高校之間的隸屬關系。
attr = data['隸屬于'].tolist()
result = Counter(attr)
# 排序
d = sorted(result.items(), key=lambda x: x[1], reverse=True)
print(d)
key = [i[0] for i in d]
value = [i[1] for i in d]
c = (Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK)).add_xaxis(xaxis_data=key).add_yaxis("數量", y_axis=value).set_global_opts(title_opts=opts.TitleOpts(title="全國不同大學隸屬情況"),datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_="inside")],))
c.render_notebook()
??從圖中可以看到各個不同單位管理高校的數量,其中河南省管理的高校數量最多,教育部直屬管的高校有84所等
3.5 高校的坐標點位分析
??可以使用百度的地名地址解析接口,將高校的地址轉成經緯度,經緯度轉成熱力圖如下;
四、結論與展望
??通過本次全國高校數據集的可視化探索,我們不僅直觀地展示了高校的地理分布、類型與層次、標簽情況以及與城市的關聯,還深刻理解了數據可視化的力量。它讓我們能夠以前所未有的方式洞察數據背后的故事,為教育決策提供了有力的支持。