import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('D:\\myfiles\\study\\python\\analyse\\数据团\\城市数据团_数据分析师_体验课_课程资料\\数据资料\\地市级党委书记数据库(2000-10).csv', encoding='gbk')
# 新建变量data_age,赋值包括年份、出生年份字段内容
# 清除缺失值
data_age = data[['出生年份','党委书记姓名','年份']]
data_age_re = data_age[data_age['出生年份'].notnull()]
# 计算出整体年龄数据
df1 = 2017 - data_age_re['出生年份']
# 计算出入职年龄数据
df_yearmin = data_age_re[['党委书记姓名','年份']].groupby(data_age_re['党委书记姓名']).min()
df2 = df_yearmin['年份'].groupby(df_yearmin['年份']).count() df_yearmax = data_age_re[['党委书记姓名','年份']].groupby(data_age_re['党委书记姓名']).max()
df3 = df_yearmax['年份'].groupby(df_yearmax['年份']).count() # 专业情况:专业结构 / 专业整体情况 / 专业大类分布
# 新建变量data_major,赋值包括年份、专业等字段内容,其中1代表是,0代表否
# 清除缺失值
data_major = data[['党委书记姓名','年份','专业:人文','专业:社科','专业:理工','专业:农科','专业:医科']]
data_major_re = data_major[data_major['专业:人文'].notnull()]
# 统计每个人的专业
data_major_re['专业'] = data_major_re[['专业:人文', '专业:社科', '专业:理工', '专业:农科', '专业:医科']].idxmax(axis=1)
# 去重
data_major_st = data_major_re[['专业','党委书记姓名']].drop_duplicates()
# 计算出学历结构数据
df4 = data_major_st['专业'].groupby(data_major_st['专业']).count()
# 计算每年专业整体情况数据
df5 = pd.crosstab(data_major_re['年份'], data_major_re['专业'])
# 计算每年专业大类分布数据
df5['社科比例'] = df5['专业:社科'] / (df5['专业:理工'] + df5['专业:医科'] + df5['专业:社科'] + df5['专业:农科'] + df5['专业:人文'])
df5['人文比例'] = df5['专业:人文'] / (df5['专业:理工'] + df5['专业:医科'] + df5['专业:社科'] + df5['专业:农科'] + df5['专业:人文'])
df5['理工农医比例'] = (df5['专业:理工'] + df5['专业:医科'] + df5['专业:农科'])/ (df5['专业:理工'] + df5['专业:医科'] + df5['专业:社科'] + df5['专业:农科'] + df5['专业:人文']) # 年龄情况:图表绘制
# 创建一个图表,大小为12*8
fig_q2 = plt.figure(figsize = (14,12))
# 创建一个3*2的表格矩阵
ax1 = fig_q2.add_subplot(2,3,1)
ax2 = fig_q2.add_subplot(2,3,2)
ax3 = fig_q2.add_subplot(2,3,3)
ax4 = fig_q2.add_subplot(2,3,4)
ax5 = fig_q2.add_subplot(2,3,5)
ax6 = fig_q2.add_subplot(2,3,6)
# 绘制第一个表格
ax1.hist(df1,bins = 11,color = 'gray', alpha=0.9)
ax1.set_title('整体年龄分布')
ax1.grid(True) # 绘制第二个表格
ax2.plot(df2,color = 'r',marker = 'o',alpha=0.9)
ax2.set_title('入职年龄分布')
ax2.set_xticks(range(2000,2011,2))
ax2.grid(True) # 绘制第三个表格
ax3.plot(df3,color = 'g',marker = 'o',alpha=0.9)
ax3.set_title('卸任年龄分布')
ax3.set_xticks(range(2000,2011,2))
ax3.grid(True) # 绘制第四个表格
ax4.bar(range(len(df4)),df4,color = 'y')
ax4.set_xticklabels(['人文','农科','医科','理工','社科'])
ax4.grid(True)
ax4.set_title('专业结构') # 绘制第五个表格
ax5.plot(df5.index,df5[['专业:人文','专业:农科','专业:医科','专业:理工','专业:社科']])
ax5.grid(True)
ax5.set_title('专业整体情况') # 绘制第六个表格
ax6.bar(df5.index,df5['社科比例'],color = 'darkred',alpha=0.7)
ax6.bar(df5.index,df5['人文比例'],color = 'darkred',bottom = df5['社科比例'],alpha=0.5)
ax6.bar(df5.index,df5['理工农医比例'],color = 'darkred',bottom = df5['人文比例'] + df5['社科比例'],alpha=0.3)
ax6.grid(True)
ax6.set_title('专业大类分布:社科、人文、理工农医') plt.show()
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('D:\\myfiles\\study\\python\\analyse\\数据团\\城市数据团_数据分析师_体验课_课程资料\\数据资料\\地市级党委书记数据库(2000-10).csv', encoding='gbk')
# 新建变量data_age,赋值包括年份、出生年份字段内容
# 清除缺失值
data_age = data[['出生年份','党委书记姓名','年份']]
data_age_re = data_age[data_age['出生年份'].notnull()]
# 计算出整体年龄数据
df1 = 2017 - data_age_re['出生年份']
# 计算出入职年龄数据
df_yearmin = data_age_re[['党委书记姓名','年份']].groupby(data_age_re['党委书记姓名']).min()
df2 = df_yearmin['年份'].groupby(df_yearmin['年份']).count() df_yearmax = data_age_re[['党委书记姓名','年份']].groupby(data_age_re['党委书记姓名']).max()
df3 = df_yearmax['年份'].groupby(df_yearmax['年份']).count() # 专业情况:专业结构 / 专业整体情况 / 专业大类分布
# 新建变量data_major,赋值包括年份、专业等字段内容,其中1代表是,0代表否
# 清除缺失值
data_major = data[['党委书记姓名','年份','专业:人文','专业:社科','专业:理工','专业:农科','专业:医科']]
data_major_re = data_major[data_major['专业:人文'].notnull()]
# 统计每个人的专业
data_major_re['专业'] = data_major_re[['专业:人文', '专业:社科', '专业:理工', '专业:农科', '专业:医科']].idxmax(axis=1)
# 去重
data_major_st = data_major_re[['专业','党委书记姓名']].drop_duplicates()
# 计算出学历结构数据
df4 = data_major_st['专业'].groupby(data_major_st['专业']).count()
# 计算每年专业整体情况数据
df5 = pd.crosstab(data_major_re['年份'], data_major_re['专业'])
# 计算每年专业大类分布数据
df5['社科比例'] = df5['专业:社科'] / (df5['专业:理工'] + df5['专业:医科'] + df5['专业:社科'] + df5['专业:农科'] + df5['专业:人文'])
df5['人文比例'] = df5['专业:人文'] / (df5['专业:理工'] + df5['专业:医科'] + df5['专业:社科'] + df5['专业:农科'] + df5['专业:人文'])
df5['理工农医比例'] = (df5['专业:理工'] + df5['专业:医科'] + df5['专业:农科'])/ (df5['专业:理工'] + df5['专业:医科'] + df5['专业:社科'] + df5['专业:农科'] + df5['专业:人文']) # 年龄情况:图表绘制
# 创建一个图表,大小为12*8
fig_q2 = plt.figure(figsize = (14,12))
# 创建一个3*2的表格矩阵
ax1 = fig_q2.add_subplot(2,3,1)
ax2 = fig_q2.add_subplot(2,3,2)
ax3 = fig_q2.add_subplot(2,3,3)
ax4 = fig_q2.add_subplot(2,3,4)
ax5 = fig_q2.add_subplot(2,3,5)
ax6 = fig_q2.add_subplot(2,3,6)
# 绘制第一个表格
ax1.hist(df1,bins = 11,color = 'gray', alpha=0.9)
ax1.set_title('整体年龄分布')
ax1.grid(True) # 绘制第二个表格
ax2.plot(df2,color = 'r',marker = 'o',alpha=0.9)
ax2.set_title('入职年龄分布')
ax2.set_xticks(range(2000,2011,2))
ax2.grid(True) # 绘制第三个表格
ax3.plot(df3,color = 'g',marker = 'o',alpha=0.9)
ax3.set_title('卸任年龄分布')
ax3.set_xticks(range(2000,2011,2))
ax3.grid(True) # 绘制第四个表格
ax4.bar(range(len(df4)),df4,color = 'y')
ax4.set_xticklabels(['人文','农科','医科','理工','社科'])
ax4.grid(True)
ax4.set_title('专业结构') # 绘制第五个表格
ax5.plot(df5.index,df5[['专业:人文','专业:农科','专业:医科','专业:理工','专业:社科']])
ax5.grid(True)
ax5.set_title('专业整体情况') # 绘制第六个表格
ax6.bar(df5.index,df5['社科比例'],color = 'darkred',alpha=0.7)
ax6.bar(df5.index,df5['人文比例'],color = 'darkred',bottom = df5['社科比例'],alpha=0.5)
ax6.bar(df5.index,df5['理工农医比例'],color = 'darkred',bottom = df5['人文比例'] + df5['社科比例'],alpha=0.3)
ax6.grid(True)
ax6.set_title('专业大类分布:社科、人文、理工农医') plt.show()

  

使用MATPLOTLIB 制图(小图)的更多相关文章

  1. 使用MATPLOTLIB 制图(散点图,热力图)

    import numpy as np import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv('D:\\myfil ...

  2. 使用matplotlib 制图(柱状图、箱型图)

    柱状图: import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv('D:\\myfiles\\study\\pyt ...

  3. 【转】matplotlib制图——图例legend

    转自:https://www.cnblogs.com/alimin1987/p/8047833.html import matplotlib.pyplot as pltimport numpy as ...

  4. 012 pandas与matplotlib结合制图

    这里以后再补充. 1.折线图

  5. Matplotlib基本使用简介

    目录 Matplotlib基本使用简介 1. Matplotlib简介 2. Matplotlib操作简介 Matplotlib基本使用简介 1. Matplotlib简介   Matplotlib是 ...

  6. Matplotlib 学习笔记

    注:该文是上了开智学堂数据科学基础班的课后做的笔记,主讲人是肖凯老师. 数据绘图 数据可视化的原则 为什么要做数据可视化? 为什么要做数据可视化?因为可视化后获取信息的效率高.为什么可视化后获取信息的 ...

  7. Python图表绘制:matplotlib绘图库入门

    matplotlib 是Python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备,并 ...

  8. matplotlib库的常用知识

    看看matplotlib是什么? matplotlib是python上的一个2D绘图库,它可以在夸平台上边出很多高质量的图像.综旨就是让简单的事变得更简单,让复杂的事变得可能.我们可以用matplot ...

  9. python 绘图工具 matplotlib 入门

    转自: http://www.cnblogs.com/kaituorensheng/p/3440273.html matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的 ...

随机推荐

  1. streamsets 集成 rabbitmq 以及benthos stream 处理框架

    benthos 是一个stream 处理框架,streamsets 也是,但是两者可以通过不同的工具进行集成起来 一般我们可以使用http 服务,消息中间件(kafka.rabbitmq ...) 使 ...

  2. PHP经典乱码“口”字与解决办法

    这几天看了看 Ajax 的基础知识,在练习一个简单的 请求和响应时,PHP 返回来的数据 在 IE 中开头总显示 一个 “锘” 字!上网 Baidu 了一下,发现这是由于 系统 处理 UTF-8 的方 ...

  3. 修改oracle系统参数spfile导致数据库无法启动解决

    错误示范: SQL> alter system set nls_date_format='yyyy-mm-dd 24hh:mi:ss' scope=spfile;System altered.我 ...

  4. Nginx 下部署 HTTPS 与安全调优

    什么是 HTTPS?# HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的 ...

  5. C#继承基本控件实现自定义控件 (转帖)

    自定义控件分三类: 1.复合控件:基本控件组合而成.继承自UserControl 2.扩展控件:继承基本控件,扩展一些属性与事件.比如继承Button 3.自定义控件:直接继承自Control 第一种 ...

  6. MySQL 中间件 mycat 的使用

    什么是MYCAT 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务.ACID.可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 一个融 ...

  7. ADO.NET EF 中的实体修改方法

    http://www.cnblogs.com/zfz15011/archive/2010/05/30/1747486.html 1.传统修改模式,看下列代码 using (NorthwindEntit ...

  8. Android NDK R9 安装配置 无需Cygwin

    转自:http://www.cr173.com/soft/66623.html NDK是一个工具集,可让您实现您的应用程序使用本机代码的语言,如C和C + +.Android NDK 是在SDK前面又 ...

  9. 关于模板该不该用css强制编辑器文本开头空两格

    关于模板该不该用css强制编辑器文本开头空两格这个问题,我很早之前就想说了,写惯了qq日志的童鞋都知道,qq空间的编辑器没有任何css控制,行头空两格是由用户自己控制,我写起日志又像流水账,长长的一篇 ...

  10. jstack 查看线程状态

    使用jstack pid命令可以查看JVM的线程状态,其中值得关注的线程状态有:死锁,Deadlock(重点关注)执行中,Runnable等待资源,Waiting on condition(重点关注) ...