大三数据可视化,基于python,使用包matplotlib绘制图形。数据来源是国家数据。数据下载链接国家数据

import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
import pandas as pd
#解决中文编码
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus'] = False#读取文件
df_pop = pd.read_excel('D:/databaes/pop/China_Population.xlsx') #读取人口文件
df_age = pd.read_excel('D:/databaes/pop/China_raise.xlsx')#读取年龄分级文件#处理数据
df_pop.sort_index(ascending=False,inplace=True)
df_pop.reset_index(inplace=True)
#print(df_pop.head(10))
#设置x轴坐标
x_labels=df_pop.Year
x_labels1=df_age.Year#创建一个画布,绘制1949-2021年中国总人口变化曲线
plt.figure(figsize=(20,10))
plt.plot(df_pop['Year'],df_pop['Population'],color='#EDB120')
plt.plot(df_pop['Year'], df_pop['Population'], '*', color='r', markersize=8)
plt.xlabel('Year')
plt.ylabel('人口 (单位:万人)')
plt.title('中国总人口   (1949-2021)')
plt.show()

#对比1949-1979与1980-2010年增加的总人口数对比(计划生育)
plt.figure(figsize=(13,9))
pop_total1=df_pop.Population[29]-df_pop.Population[0]
pop_total2=df_pop.Population[60]-df_pop.Population[30]
x_label=np.array(['1949-1979年增加人口','1980-2010年增加人口'])
data=(pop_total1,pop_total2)
x=np.arange(2)
bar_width=0.6
plt.bar(x,data,width=bar_width,color=["#00FFFF",'#EDB120'],tick_label=x_label)
plt.text(0,43000,pop_total1,color='r',fontsize=20)
plt.text(1,36000,pop_total2,color='r',fontsize=20)
plt.ylim(5500)
plt.xlabel("增加人数 (单位:万人)",fontsize=20)
plt.xlabel("时间(计划生育实行前后)")
plt.title("执行计划生育前30年和后三十年增加人口总数对比 (单位:万人)")
plt.show() 

#一个画布分四部分
#第一部分2021年中国男女所占比例
fig = plt.figure(figsize=(20,15))
as1 = fig.add_subplot(221)
boy_2020 = df_pop.Boytotal[71]
girl_2020 = df_pop.Girltotal[71]
total=(boy_2020,girl_2020)
as1.pie(total,radius=0.8,autopct='%3.1f%%')
plt.legend(['男','女'])
as1.set_title('2020年中国男女比')#第二部分 历年男生在总人数的值
as2 = fig.add_subplot(222)
as2.plot(df_pop.Year,df_pop.boy_rate,color='r')
as2.text(1949,0.5196,"51.96%",color='blue',fontsize=15)
as2.text(1996,0.508,"50.82%",color='blue',fontsize=15)
as2.set_ylim(0.50,0.522)
as2.set_title('历年男性占总人数比')
as2.set_ylabel('比值')
#第三部分
as3 = fig.add_subplot(223)
as3.plot(df_pop.Year,df_pop.Boytotal,color='#45B39D',linestyle=':')
as3.plot(df_pop.Year,df_pop.Girltotal,color='#E74C3C',linestyle='--')
as3.legend(['男','女'])
as3.set_title('中国70年男女总人数 (单位:万人)')
as3.set_ylabel('人数 (单位:万人)')
#第四部分 男女差值
as4 = fig.add_subplot(224)
dv = df_pop.Boytotal - df_pop.Girltotal
as4.plot(df_pop.Year,dv,color='r',linestyle='--')
as4.set_title("70年中国男女差值 (单位:万人)")
as4.text(2000,4131,4131,color='blue',fontsize=15)
as4.text(1965,1718,1718,color='blue',fontsize=15)
as4.set_ylabel('人数 (单位:万人)')

#城镇化
fig=plt.figure(figsize=(13,5))
as5 = fig.add_subplot(221)
U_pop = df_pop.Urban_population
as5.plot(df_pop.Year,U_pop,color='blue')
as5.vlines(1959,100,85000,color='r')
as5.vlines(1965,100,85000,color='r')
as5.vlines(1978,100,85000,color='r')
as5.vlines(1991,100,85000,color='r')
as5.text(1949,20000,'城镇化起步发展阶段',color='#3498DB')
as5.text(1960,20000,'波动阶段',color='#3498DB')
as5.text(1970,20000,'停滞阶段',color='#3498DB')
as5.text(1982,30000,'高速发展阶段',color='#3498DB')
as5.text(2000,60000,'平稳发展阶段',color='#3498DB')
as5.set_title("中国城镇化发展进程")#饼图  2020年中国城市人口和乡村人口比例
as6 = fig.add_subplot(222)
data1 = (df_pop.Rural_population[71],df_pop.Urban_population[71])
as6.pie(data1,radius=0.8,autopct='%3.1f%%')
as6.legend(['2020乡村人口','2020城市人口'])
as6.set_title("2020年中国城镇化比例")#散点图 中国70年城乡人口散点图
as7 = fig.add_subplot(223)
as7.scatter(df_pop.Year,df_pop.Rural_population,s=10,alpha=0.9)
as7.scatter(df_pop.Year,df_pop.Urban_population,s=10,alpha=0.9)
as7.legend(['乡村人口','城市人口'])#中国人口城镇化比例曲线
as8 = fig.add_subplot(224)
as8.plot(df_pop.Year,df_pop.Urban_rate,color='#CD6155',linestyle='-.')
as8.hlines(y=0.3,xmin=1949,xmax=2020,colors='#2ECC71')
as8.hlines(y=0.606,xmin=1949,xmax=2020,colors='#2ECC71')
as8.set_title("中国人口城镇化比例曲线")
plt.show()

 #出生率、死亡率、增长率
plt.figure(figsize=(13,5))
plt.plot(df_pop.Year,df_pop.Natality,color='#239B56',marker='o',linestyle='-.')
plt.plot(df_pop.Year,df_pop.Death_rate,color='#943126',marker='+',linestyle='--')
plt.plot(df_pop.Year,df_pop.Natural_population_growth_rate,color='#D2B4DE',marker='s',linestyle=':' )
plt.legend(['出生率','死亡率','人口自然增长率'])
plt.title('中国71年的出生率、死亡率和自然增长率变化')
plt.xlabel('年份')
plt.ylabel('增长率 (%)')
plt.show()

#高级绘图
import pyecharts.options as opts
from pyecharts.charts import Pie
pie_demo = (Pie().add("",[('0-9岁',16812),('10-19岁',15794),('20-29岁',16679),('30-39岁',22316),('40-44岁',9296),('45-59岁',33678),('60岁以上',26406)],center=["50%","50%"],radius=[100,160]).set_global_opts(title_opts=opts.TitleOpts(title="2020年年龄结构"))
)
pie_demo.render_notebook() 

#中国抚养比变化图
fig = plt.figure(figsize=(20,5))
as9 = fig.add_subplot(121)
as9.plot(df_age.Year,df_age.population0_14,marker='s',linestyle='--',color='#82E0AA')
as9.plot(df_age.Year,df_age.population15_64,marker='D',linestyle='-.',color='#839192')
as9.plot(df_age.Year,df_age.powerPopulation65,marker='h',linestyle=':',color='#2C3E50')
as9.legend(['0-14岁','15-64岁','65岁以上'])
as9.set_title("中国人口年龄变化图(万人)")
as10 =fig.add_subplot(122)
as10.plot(df_age.Year,df_age.Elderly_care,marker='p',linestyle='-.',color='#1D8348')
as10.plot(df_age.Year,df_age.Children_to_raise,marker='h',linestyle='--',color='#1D8348')
as10.plot(df_age.Year,df_age.total,marker='v',linestyle=':',color='#5B2C6F')
as10.set_title("中国抚养比变化图")

python数据可视化项目设计-中国人口相关推荐

  1. 第十九章 python 数据可视化 Matplotlib Pygal

    python 数据可视化 一.使用Matplotlib生成数据图 1. matplotlib画图中文乱码小方框的解决方法 2. 知识点 3. 安装Matplotlib包 4. Matplotlib数据 ...

  2. Python 数据可视化—下载数据(CSV文件格式、JSON格式)

    Python 数据可视化-下载数据CSV文件格式.JSON格式 网上下载数据,并对这些数据进行可视化,可视化以两种常见格式存储的数据:CSV 和JSON. 我们将使用Python模块csv 来处理以C ...

  3. python利器-Python 数据可视化利器

    原标题:Python 数据可视化利器 (给Python开发者加星标,提升Python技能) 作者:zone7(本文来自作者投稿,简介见末尾) 概述 前言 推荐 plotly bokeh pyechar ...

  4. Python数据可视化(微课版)-简介

    前 言 当前,我们正处于大数据爆发的时代,涌现出大量不同类型的时空数据和非时空数据,信息激流使个人.企业和社会对大数据的依赖不断深化,与此同时,数据可视化研究已成为一个新的时代命题,与立体建模等方法相 ...

  5. python数据可视化(matplotlib条形图、饼图、箱状图、直方图、折线图)(代码)

    python数据可视化(matplotlib条形图.饼图.箱状图.直方图.折线图) matplotlib(条形图) 一.简单条形图 1.简单垂直条形图 2.简单水平条形图 二.水平交错条形图 三.垂直 ...

  6. Python数据分析初探项目 基于Python数据可视化的网易云音乐歌单分析系统 大学编程作业(TUST 天津科技大学 2022年)

    Python 数据分析初探项目 基于 Python 数据可视化的网易云音乐歌单分析系统 大学编程作业(TUST 天津科技大学 2022 年) Python 数据分析初探项目 基于 Python 数据可 ...

  7. Python数据可视化——pyecharts学习笔记

    导读:Python数据可视化的库有很多,常见的有matplotlib.pyplot.Seaborn.pyecharts等. pyecharts是一款将python与echarts相结合的数据可视化库, ...

  8. python数据可视化库_python和r中用于数据可视化的前9个库

    python数据可视化库 In the rapidly growing world of today, when technology is expanding at a rate like neve ...

  9. 每日一课 | Python数据可视化—多样化的图像

    07 大家好,我是营长,昨天营长分享了数据科学"的知识点:,不清楚的小伙伴可戳这????每日一课|Python数据可视化-如何分区和绘图 本期营长接着为大家分享Python数据可视化相关内容 ...

最新文章

  1. IDEA真牛逼,900行又臭又长的类重构,几分钟搞定
  2. 安装eclipse的maven插件
  3. echarts柱形图x轴y轴互换_数控机床在加工零件时,突然出现X、Y、Z轴失控?如何处理...
  4. 2019阿里云910会员节大促主会场全攻略
  5. 注册docker hub账号
  6. Python打印A~Z的26个字母,你会怎样打印?
  7. web开发移动端准备工作
  8. 行车路途出现意外6个急救绝招
  9. 2016年3月8日----Javascript的函数
  10. 找不到libmmd.dll无法继续执行代码_代码中的软件工程 - xieyupei
  11. (四)、Redis删除策略---Redis设计与实现读书笔记
  12. LabVIEW查找范例的使用举例
  13. 【LeetCode】592. 分数加减运算
  14. 关于阻抗设计的建议-来至深南电路板厂的心水总结
  15. 本科生如何快速发表期刊论文,如何选择普刊?
  16. 使用电脑微信扫描二维码
  17. 出现这十种症状,说明你不适合干程序员
  18. 好的plm软件有哪些?plm软件排行榜
  19. CCS11用户界面介绍2
  20. Linux查看网卡的运行情况,NETSTAT - 查看网络运行情况。

热门文章

  1. 游戏用简单像素画素材的绘制
  2. android如何给整个视图view圆角显示
  3. python编程实现文本分词_Python:徒手创建分词函数
  4. 联发科MT6753处理器概述,MT6753芯片资料
  5. 常见的网络安全攻击及防御技术概述
  6. 健美计步器-开启超智能健康生活
  7. git 加密_4个用于Git加密的秘密管理工具
  8. linux实时realtime,康佳特与OSADL携手优化 Real-Time Linux 的支持 顺利实现硬实时
  9. 通达信l2接口公式数据共享的意义
  10. C#使用APlayer开发自制媒体播放器