版权声明:本文为博主原创文章,转载 请注明出处:https://blog.csdn.net/sc2079/article/details/82318571

- 写在前面


  本篇博客继续对中国大学MOOC课程信息进行数据分析,主要是利用pyecharts针对MOOC上开课的大学信息的分析。
  前两次博客内容:
    1. 中国大学MOOC课程信息爬取与数据存储
    2. 中国大学MOOC课程信息之数据分析可视化一

- 环境配置安装


  运行环境:Python3.6、Spyder
  依赖的模块:pyecharts以及一些地图模块

- 开始工作


1. 获取数据

  首先从网上下载大学信息数据,我找了好久,也花费了不少积分,才找到比较不错的数据。下面是下载链接:最新全国高校数据库信息(包含2854所高校)。
  接下来打开mysql,新建数据库univ_info,再将下载的MS EXCEL数据导入到该数据库中。
  导入后的结果如下:
   
  编写代码获取MOOC上的大学列表

'''获得MOOC上开课大学信息'''
universities=[]
for kc in kc_info[0]:if kc[2] not in universities: universities.append(kc[2])

  便可以得到MOOC上已开课的大学名称的列表,我们可以根据这个查询数据库相应字段的数据,从而得到所需要的大学信息了。
  这里值得注意的是先前得到的大学名称中含有“微软”、”爱课程“等非院校单位,在数据库查询时会出现空值,此时应将其去除掉。

def mysql_univ_info(univs):results=[]db = pymysql.connect(host='localhost',user='root',passwd='root',db='univ_info',charset='utf8')cur = db.cursor()for univ in univs:cur.execute("select * from univ_info where 院校名称='%s'"% univ)  result=cur.fetchall()if result!=():result=result[0]          results.append(result)return results

  调用前面函数,便可以得到所需要的院校信息了。

![](https://i.imgur.com/9WjTmy9.png)

2. 大学所在城市

  由于数据库表中所在城市有些为空,观察可知其为直辖市,因此不妨用所在地区替代。

'''大学城市'''
univ_cities=[]
for univ_info in univ_infos:if univ_info[4]==None:univ_cities.append((univ_info[1],univ_info[3]))else:univ_cities.append((univ_info[1],univ_info[4]))
univ_city_num={}
for univ_city in univ_cities:univ_city_num[univ_city[1]]=univ_city_num.get(univ_city[1],0)+1
univ_city_items = list(univ_city_num.items())
univ_city_items.sort(key=lambda x:x[1], reverse=True)

  参考pyecharts官网提供的示例,便可以根据需求做出自己想要的图表,链接:图表详情
  代码如下:

def pyecharts_geo_city(datas):geo = Geo("中国城市所拥有的已在MOOC开课的大学数",title_color="#fff",title_pos="center",width=1200,height=600,background_color="#404a59")attr, value = geo.cast(datas)geo.add("",attr,value,visual_range=[0, 30],visual_text_color="#fff",symbol_size=15,is_visualmap=True)geo.render("中国城市所拥有的已在MOOC开课的大学数.html")

  打开生成的网页,可以看到:

  在网页上你可以滑动左下角的标签,查看大学数量的某些区间下城市分布,比如:

  这个是大学数在8以上的城市,这在一定程度上也反映出城市的大学教育的发展情况。

3.大学所在省份

  同上,可以做类似的分析。

'''大学省份'''
univ_provinces=[]
for univ_info in univ_infos:if univ_info[2]==None:univ_provinces.append((univ_info[1],univ_info[3][0:2]))else:univ_provinces.append((univ_info[1],univ_info[2]))
univ_province_num={}
for univ_province in univ_provinces:univ_province_num[univ_province[1]]=univ_province_num.get(univ_province[1],0)+1
univ_province_items = list(univ_province_num.items())
univ_province_items.sort(key=lambda x:x[1], reverse=True)

  调用的函数为:

def pyecharts_geo_province(datas):maps = Map("中国省份所拥有的已在MOOC开课的大学数", width=1200, height=600)labels,sizes=[],[]labels,sizes= maps.cast(datas)maps.add("",labels,sizes,maptype="china",visual_range=[0, 30],is_visualmap=True,visual_text_color="#000")maps.render("中国省份所拥有的已在MOOC开课的大学数.html")

  运行结果如下:

4.大学等级

  这里主要是简单统计MOOC上开课的大学院校中有多少985或者211或者其它之类的。

'''大学等级'''
univ_rating=[]
_985,_211,_others=0,0,0
for univ_info in univ_infos:univ_rating.append((univ_info[1],univ_info[5],univ_info[6]))if univ_info[5]=='211':_211+=1if univ_info[6]=='985':_985+=1else:_others+=1
univ_rating_num=[('985',_985),('211',_211),('others',_others)]
pyecharts_rosepie_rating(univ_rating_num)

  用圆饼-玫瑰图绘出结果:

def pyecharts_rosepie_rating(datas):pie = Pie("MOOC开课大学等级", title_pos='center', width=900)attr,v1=pie.cast(datas)pie.add("",attr,v1,center=[25, 50],is_random=True,radius=[30, 75],rosetype="radius",#rosetype="area"is_legend_show=False,is_label_show=True)pie.render("MOOC开课大学等级.html")

  运行结果:

5.大学类型

  这里主要是统计的在MOOC上开课的大学类型:

'''大学类型'''
univ_kinds={}
for univ_info in univ_infos:kind=univ_info[8][0:3]univ_kinds[kind]=univ_kinds.get(kind,0)+1
univ_kind_items = list(univ_kinds.items())
univ_kind_items.sort(key=lambda x:x[1], reverse=True)

  采用条形图绘制:

def pyecharts_bar_kinds(datas): bar = Bar("MOOC开课大学类型")attr,v=bar.cast(datas)bar.add("", attr, v,mark_point=["average"],mark_line=["min", "max"],is_more_utils=True)bar.render("MOOC开课大学类型.html")

  运行结果:

  由图知,平均数为10,最大值为48,最小值为1,一共有11种院校类型,综合类大学、工科类大学、远超其他类型的大学,这与当前教育背景密不可分的。

- 结语

  其实可以做的不仅限于此。如果感兴趣,可以访问:pyecharts官网多多学习。
  另外,第一次用Markdown写博客,诸多不习惯,如果文章中有错误,请指正哈。

中国大学MOOC课程信息之数据分析可视化二相关推荐

  1. 中国大学MOOC课程信息之数据分析可视化一

    版权声明:本文为博主原创文章,转载 请注明出处:https://blog.csdn.net/sc2079/article/details/82263391 9月2日更:中国大学MOOC课程信息之数据分 ...

  2. 中国大学MOOC课程信息爬取与数据存储

    版权声明:本文为博主原创文章,转载 请注明出处: https://blog.csdn.net/sc2079/article/details/82016583 10月18日更:MOOC课程信息D3.js ...

  3. Python爬取中国大学MOOC课程信息

    问题:获取中国大学MOOC平台的课程信息,包括开课学校.课程类别(标签).课程名称.课程评分.评价人数和已参加课程人数. 思路: 1.进入中国大学MOOC首页,点击"学校",进入学 ...

  4. 笔记:中国大学MOOC课程《程序设计入门——C语言》编程练习

    笔记:中国大学MOOC课程<程序设计入门--C语言>编程练习 第7周 数组运算 1 多项式加法 第8周 指针与字符串 2 GPS数据处理 第7周 数组运算 1 多项式加法 题目内容: 一个 ...

  5. 中国大学 MOOC 课程Python语言程序设计 (第11期)测试答案(1-5周)

    中国大学 MOOC 课程Python语言程序设计 (第11期)测试答案(1-5周)  Lan   2020-05-03 14:21   369 人阅读  0 条评论 感谢中国大学MOOC提供的学习平台 ...

  6. 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(四)(Python语言基础(2))

    [神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(四)(Python语言基础(2)) 第4讲 Python语言基础(2) 4.1 内置数据结构 4.1.1 序列数据结构(sequ ...

  7. 中国大学 MOOC 课程 《Python 语言程序设计》第六周

    中国大学 MOOC 课程 <Python 语言程序设计>第六周 一.lambda函数 1,lambda的一般形式是关键字lambda后面跟一个或多个参数,紧跟一个冒号,以后是一个表达式.l ...

  8. 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(十四)(卷积神经网络))

    [神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(十四)(卷积神经网络)) 14 卷积神经网络 14.1 深度学习基础 14.1.1 深度学习的基本思想 14.1.2 深度学习三 ...

  9. 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(八)(TensorFlow基础))

    [神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(八)(TensorFlow基础)) 8 TensorFlow基础 8.1 TensorFlow2.0特性 8.1.1 Tenso ...

最新文章

  1. (数据科学学习手札45)Scala基础知识
  2. php读取模板生成静态功能,php 生成静态页面的办法与实现代码详细版
  3. C#删除字符串倒数第几个字符后的所有字符串
  4. Java历程-初学篇 Day02变量,数据类型和运算符
  5. android studio 安装apk失败,AndroidStudio安装apk时失败时提示INSTALL_PARSE_FAILED_NO_CERTIFICATES...
  6. 解决:mysql5.7 timestamp默认值0000-00-00 00:00:00 报错
  7. 白杨SEO:聊聊微信红包封面、微信8.0状态背景图片和视频素材背后的商机
  8. 9.8 多元函数微分的代数应用——多元函数的极值
  9. mac谷歌浏览器怎么登陆账户_苹果电脑怎么安装谷歌浏览器_macbook如何下载安装谷歌浏览器-win7之家...
  10. Ucenter实现多个网站同步登录
  11. matlab中sum对矩阵求和以及size用法
  12. 苹果手机上网速度慢_是什么原因导致手机网速慢!
  13. Oracle ASM理论及实践介绍
  14. 毕业设计-基于协同过滤算法的旅游推荐系统
  15. SAE J3016 自动驾驶分级定义 2021年4月更新
  16. 树(2021.7.11晚)
  17. Java中WeakHashMap的应用场景
  18. 四川麻将必胜攻略笔记(入门篇1)
  19. HTML form表单 input输入框
  20. 眼球中心定位跟踪算法—eyelike

热门文章

  1. MySQL修改数据库编码
  2. 19-05-数据库mysql增删改查
  3. 随机森林(RFC)实现模型优化与特征提取
  4. 科技拾遗|成为传奇的哈勃望远镜,曾经居然被当做笑话?
  5. RTX2080ti显卡+win10+安装Tensorflow-gpu
  6. 计算机网络(标准化工作及相关组织)
  7. 康耐视InSight软件的安装与软件激活方式分享
  8. 在Unity环境中使用强化学习训练Donkey Car(转译)
  9. Zoom视频会议软件使用
  10. 高速PCB(五) 信号层覆铜选择困难症