六大绘图

  • "populations.npz"文件中保存了1996~2015年的人口数据。
  • (1) 绘制1996-2015年总人口和各个人口特征的散点图
  • 子图1:1996-2015年总人口散点图
  • 子图2:1996-2015年男女、城乡人口散点图
  • (2)绘制1996-2015年总人口和各个人口特征的折线图
  • 子图1:1996-2015年总人口折线图
  • 子图2:1996-2015年男女、城乡人口折线图
  • (3)绘制1996-2015年男女人口、城乡人口数目的条形图
  • 子图1:1996-2015年男女人口条形图
  • 子图2:1996-2015年城乡人口条形图
  • (4)绘制1996、2015年男女人口、城乡人口比例的饼图
  • 子图1:1996年男女人口比例饼图
  • 子图2:2015年男女人口比例饼图
  • 子图3:1996年城乡人口比例饼图
  • 子图4:2015年城乡人口比例饼图
  • (5)绘制1996-2015年男女人口和城乡人口特征的箱线图


使用数据在网盘哦!

python展示中国各个省份人口地图代码 用python人口分布地图_子图

链接:06-08讲文件里 提取码:2p61

"populations.npz"文件中保存了1996~2015年的人口数据。
人口数据总共有6个特征,分别为 年份、年末总人口、男性人口、女性人口、城镇人口、乡村人口。
查看各个特征随着时间推移发生的变化情况可以分析出未来男女人口比例、城乡人口变化的方向。

"populations.npz"文件中保存了1996~2015年的人口数据。

  • 人口数据总共有6个特征,分别为年份、年末总人口、男性人口、女性人口、城镇人口、乡村人口。
  • 查看各个特征随着时间推移发生的变化情况可以分析出未来男女人口比例、城乡人口变化的方向。
(1) 绘制1996-2015年总人口和各个人口特征的散点图
子图1:1996-2015年总人口散点图
子图2:1996-2015年男女、城乡人口散点图
import numpy as np
import matplotlib.pyplot as plt
sumdata = np.load(r'C:/Users/Desktop/Python数据分析与应用/第3章/实训数据/populations.npz',allow_pickle=True)
print(sumdata.files)
name = sumdata['data'] ## 提取其中的data数组,视为数据的标签
values = sumdata['feature_names']## 提取其中的'feature_names'数组,数据的存在位置
a = name[19::-1] # 逆序
print(a)

# (1)绘制1996-2015年总人口和各个人口特征的散点图
plt.figure(figsize=(8,6))
plt.scatter(a[:,0],a[:,1],marker='s') # 年末总人口(万人) 正方形图
plt.scatter(a[:,0],a[:,2],marker='x') # 男性人口 六边形
plt.scatter(a[:,0],a[:,3],marker='o') # 女性人口 圆
plt.scatter(a[:,0],a[:,4],marker='.') # 城镇人口 .
plt.scatter(a[:,0],a[:,5],marker='*') # 乡村人口 *
plt.title("1996-2015年总人口和各个人口特征的散点图")
plt.xlabel("时间")
plt.ylabel("人口数量(万人)",)
plt.xticks(range(0,20,1),a[range(0,20,1),0],rotation=45)
plt.savefig('C:/Users/Desktop/1996-2015年总人口和各个人口特征的散点图.png',dpi=600)
plt.show()

python展示中国各个省份人口地图代码 用python人口分布地图_折线图_02

# 接上面代码
# 子图1:1996-2015年总人口散点图
p = plt.figure(figsize=(12,12))
ax1 = p.add_subplot(2,2,1) # 子图1
plt.scatter(a[:,0],a[:,1],marker='.') # 年末总人口(万人) 正方形图
plt.title("1996-2015年总人口散点图")
plt.xlabel("时间")
plt.ylabel("人口数量(万人)")
plt.xticks(range(0,20,1),a[range(0,20,1),0],rotation=45)

# 子图2:1996-2015年男女、城乡人口散点图
ax2 = p.add_subplot(2,2,2) # 子图2
plt.scatter(a[:,0],a[:,2],marker='x') # 男性人口 六边形
plt.scatter(a[:,0],a[:,3],marker='o') # 女性人口 圆
plt.scatter(a[:,0],a[:,4],marker='.') # 城镇人口 .
plt.scatter(a[:,0],a[:,5],marker='*') # 乡村人口 *
plt.title("1996-2015年男女、城乡人口散点图")
plt.xlabel("时间")
plt.ylabel("人口数量(万人)")
plt.xticks(range(0,20,1),a[range(0,20,1),0],rotation=45)
plt.savefig('C:/Users/Desktop/人口子图散点图.png',dpi=600)
plt.show()

python展示中国各个省份人口地图代码 用python人口分布地图_饼图_03

(2)绘制1996-2015年总人口和各个人口特征的折线图
子图1:1996-2015年总人口折线图
子图2:1996-2015年男女、城乡人口折线图
# (2)绘制1996-2015年总人口和各个人口特征的折线图
import numpy as np
import matplotlib.pyplot as plt
sumdata = np.load(r'C:/Users/Desktop/Python数据分析与应用/第3章/实训数据/populations.npz',allow_pickle=True)
name = sumdata['data'] 
values = sumdata['feature_names']
a = name[19::-1] # 逆序

plt.figure(figsize=(8,6))
plt.plot(a[:,0],a[:,1],color='r',linestyle='--',marker='x') # 年末总人口(万人) 正方形图
plt.plot(a[:,0],a[:,2],color='b',linestyle='--',marker='o') # 男性人口 六边形
plt.plot(a[:,0],a[:,3],color='g',linestyle='--') # 女性人口 圆
plt.plot(a[:,0],a[:,4],color='y',linestyle='-.') # 城镇人口 .
plt.plot(a[:,0],a[:,5],color='k',linestyle='-.') # 乡村人口 *
plt.title("1996-2015年总人口和各个人口特征的折线图")
plt.xlabel("时间")
plt.ylabel("人口数量(万人)")
plt.xticks(range(0,20,1),a[range(0,20,1),0],rotation=45,)
plt.savefig('C:/Users/Desktop/1996-2015年总人口和各个人口特征的折线图.png',dpi=600)
plt.show()


# 子图1:1996-2015年总人口折线图
# plt.figure(figsize=(8,6))
p = plt.figure(figsize=(12,12))
ax1 = p.add_subplot(2,2,1)
plt.plot(a[:,0],a[:,1],marker='.') # 年末总人口(万人) 正方形图
plt.title("1996-2015年总人口折线图")
plt.xlabel("时间")
plt.ylabel("人口数量(万人)",)
plt.xticks(range(0,20,1),a[range(0,20,1),0],rotation=45,)

# 子图2:1996-2015年男女、城乡人口折线图
ax2 = p.add_subplot(2,2,2)
plt.plot(a[:,0],a[:,2],marker='x',linestyle='--') # 男性人口 六边形
plt.plot(a[:,0],a[:,3],marker='o') # 女性人口 圆
plt.plot(a[:,0],a[:,4],marker='.') # 城镇人口 .
plt.plot(a[:,0],a[:,5],marker='*') # 乡村人口 *
plt.title("1996-2015年男女、城乡人口折线图")
plt.xlabel("时间")
plt.ylabel("人口数量(万人)",)
plt.xticks(range(0,20,1),a[range(0,20,1),0],rotation=45,)
plt.savefig('C:/Users/Desktop/人口子图折线图.png',dpi=600)
plt.show()

python展示中国各个省份人口地图代码 用python人口分布地图_子图_04


python展示中国各个省份人口地图代码 用python人口分布地图_饼图_05

(3)绘制1996-2015年男女人口、城乡人口数目的条形图
子图1:1996-2015年男女人口条形图
子图2:1996-2015年城乡人口条形图
# (3)绘制1996-2015年男女人口、城乡人口数目的条形图
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei' ## 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
sumdata = np.load(r'C:/Users/Desktop/Python数据分析与应用/第3章/实训数据/populations.npz',allow_pickle=True)
name = sumdata['data']
values = sumdata['feature_names']

a = name[19::-1] # 逆序
b = np.arange(20)-0.25
p = plt.figure(figsize=(12,14),dpi=600)

# 子图1:1996-2015年男女人口条形图
ax1 = p.add_subplot(2,2,1)
plt.bar(b,a[:,2],width=0.5)
plt.bar(b+0.5,a[:,3],width=0.5)
plt.title("1996-2015年男女人口数目的条形图")
plt.xlabel("时间")
plt.ylabel("人口数量(万人)")
plt.legend(["男性人口","女性人口"])
plt.xticks(range(0,20,1),a[range(0,20,1),0],rotation=45,)

# 子图2:1996-2015年城乡人口条形图
ax2 = p.add_subplot(2,2,2)
plt.bar(b,a[:,4],width=0.5) 
plt.bar(b+0.5,a[:,5],width=0.5) 
plt.title("1996-2015年城乡人口数目的条形图")
plt.xlabel("时间")
plt.ylabel("人口数量(万人)")
plt.xticks(range(0,20,1),a[range(0,20,1),0],rotation=45,)
plt.legend(["城镇人口","农村人口"])
plt.savefig('C:/Users/Desktop/人口子条形图.png',dpi=600)
plt.show()

python展示中国各个省份人口地图代码 用python人口分布地图_饼图_06

(4)绘制1996、2015年男女人口、城乡人口比例的饼图
子图1:1996年男女人口比例饼图
子图2:2015年男女人口比例饼图
子图3:1996年城乡人口比例饼图
子图4:2015年城乡人口比例饼图
# (4)绘制1996、2015年男女人口、城乡人口比例的饼图
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei' ## 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
sumdata = np.load(r'C:/Users/Desktop/Python数据分析与应用/第3章/实训数据/populations.npz',allow_pickle=True)
name = sumdata['data'] 
values = sumdata['feature_names'] 
a = name[19::-1] # 逆序
p = plt.figure(figsize=(14,14))
ex = [0.01,0.01]
L1 = ["男性人口","女性人口"]

# 子图1:1996年男女人口比例饼图
ax1 = p.add_subplot(2,2,1)
plt.pie(a[1,2:4],explode=ex,labels=L1,autopct="%1.1f%%") 
plt.title("1996男女人口数目比例饼图")

# 子图2:2015年男女人口比例饼图
ax2 = p.add_subplot(2,2,2)
ex = [0.01,0.01]
plt.pie(a[-1,2:4],explode=ex,labels=L1,autopct="%1.1f%%") 
plt.title("2015年男女人口数目比例饼图")

# 子图3:1996年城乡人口比例饼图
ax3 = p.add_subplot(2,2,3)
L2 = ["城镇人口","农村人口"]
ex = [0.01,0.01]
plt.pie(a[1,4:6],explode=ex,labels=L2,autopct="%1.1f%%") 
plt.title("1996年城乡人口比例饼图")

# 子图4:2015年城乡人口比例饼图
ax4 = p.add_subplot(2,2,4)
ex = [0.01,0.01]
plt.pie(a[-1,4:6],explode=ex,labels=L2,autopct="%1.1f%%") 
plt.title("2015年城乡人口比例饼图")
plt.savefig('C:/Users/Desktop/人口子饼形图.png',dpi=600)
plt.show()

python展示中国各个省份人口地图代码 用python人口分布地图_饼图_07

(5)绘制1996-2015年男女人口和城乡人口特征的箱线图

准备数据、定义标签、绘制箱线图

# (5)绘制1996-2015年男女人口和城乡人口特征的箱线图
import numpy as np
import matplotlib.pyplot as plt
sumdata = np.load(r'C:/Users/Desktop/Python数据分析与应用/第3章/实训数据/populations.npz',allow_pickle=True)
name = sumdata['data']
values = sumdata['feature_names']
a = name[19::-1] # 逆序
label = ["男性人口","女性人口","城镇人口","农村人口"] # 定义标签
gdp = (list(a[:,2]),list(a[:,3]),list(a[:,4]),list(a[:,5]))
plt.figure(figsize=(6,4))
plt.boxplot(gdp,notch=True,labels=label,meanline=True) # 绘制箱线图
plt.title("1996-2015年男女人口和城乡人口特征的箱线图")
plt.savefig('C:/Users/Desktop/1996-2015年男女人口和城乡人口特征的箱线图.png',dpi=600)
plt.show()

python展示中国各个省份人口地图代码 用python人口分布地图_饼图_08


这些小实例希望能帮助你学习哦!,网盘文件除了这个文件还有,保存"国民经济核算季度数据.npz"文件中保存了2000-2017年各季度、各产业国民生产总值的数据。