绘制人口散点与折线图

  1. 前置步骤

准备数据populations.npz,下载数据populations.npz到Linux本地的/course/DataAnalyze/data目录

  1. 绘图
  1. pyplot中绘制散点图的函数为scatter,绘制折线图的函数为plot。如代码 41所示。

代码 41 1996-2015年人口数据散点图与折线图1

In[1]:

import os

import numpy as np

import matplotlib.pyplot as plt

os.chdir('/course/DataAnalyze /data')

plt.rcParams['font.sans-serif'] = 'WenQuanYi Zen Hei'   # 设置中文显示

feature = np.load('./populations.npz', allow_pickle=True)['feature_names']  # 加载列名

amount = np.load('./populations.npz', allow_pickle=True)['data']  # 加载数据

amount = amount[::-1,:][2:,:]

p1 = plt.figure(figsize=(9,10))  #设置画布

ax1 = p1.add_subplot(2,1,1)     #创建第一幅子图

plt.title('1996-2015年人口数据散点图与折线图')

plt.ylabel('人口数量')

plt.xticks(rotation = 45)

for i in range(1,6):            #利用for循环画图

    plt.scatter(amount[:,0][0:20],amount[:,i][0:20])

ax1.legend(feature[1:],bbox_to_anchor=(1, 1),ncol=1)  #图例放图外,以免遮挡信息

ax2 = p1.add_subplot(2,1,2)     #创建第二幅子图

plt.ylabel('人口数量')

plt.xticks(rotation = 45)

for i in range(1,6):

    plt.plot(amount[:,0][0:20],amount[:,i][0:20])

ax2.legend(feature[1:],bbox_to_anchor=(1, 1),ncol=1)

plt.show()

Out[1]:

  1. 使用不同的颜色、不同形状的点,绘制2000-2017年间各产业季度生产总值的散点图,如代码 42所示。

代码 42 1996-2015年人口数据散点图与折线图2

In[2]:

# 调节rc参数方便观察

# 重新画图

p1 = plt.figure(figsize=(9,10))

ax1 = p1.add_subplot(2,1,1)

plt.title('1996-2015年人口数据散点图与折线图')

plt.ylabel('人口数量')

plt.xticks(rotation = 45)

marker=['o','D','v','*','h']     #提前设置点的形状与颜色

color=['blue','darkred','red','darkgreen','green']  #颜色深浅不同但色彩相近,方便作分类对比

for i in range(1,6):

    plt.scatter(amount[:,0][0:20],amount[:,i][0:20],marker=marker[i-1],c=color[i-1])

ax1.legend(feature[1:],bbox_to_anchor=(1, 1),ncol=1)

ax2 = p1.add_subplot(2,1,2)

plt.ylabel('人口数量')

plt.xticks(rotation = 45)

linestyle=['-','--','-.',':','-']  #提前设置线段的形状

for i in range(1,6):

    plt.plot(amount[:,0][0:20],amount[:,i][0:20],linestyle=linestyle[i-1],c=color[i-1])

ax2.legend(feature[1:],bbox_to_anchor=(1, 1),ncol=1)

plt.show()

Out[2]:

 

 

  1. 从代码 42的运行结果中的散点图或折线图中可以看到,年末总的人口数量是呈现一个缓慢上升的趋势。在性别这一方面,男性和女性的数量也是呈现出一个逐年上升的现象,在人口属性方面,城镇人口的涨幅较大,而乡村人口数量则是逐年下降。

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐