
数据挖掘技术-绘制人口散点与折线图
amount = np.load('./populations.npz', allow_pickle=True)['data']# 加载数据。color=['blue','darkred','red','darkgreen','green']#颜色深浅不同但色彩相近,方便作分类对比。marker=['o','D','v','*','h']#提前设置点的形状与颜色。linestyle=['-','-
绘制人口散点与折线图
- 前置步骤
准备数据populations.npz,下载数据populations.npz到Linux本地的/course/DataAnalyze/data目录
- 绘图
- pyplot中绘制散点图的函数为scatter,绘制折线图的函数为plot。如代码 41所示。
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]: |
![]() |
- 使用不同的颜色、不同形状的点,绘制2000-2017年间各产业季度生产总值的散点图,如代码 42所示。
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]: |
![]() |
- 从代码 42的运行结果中的散点图或折线图中可以看到,年末总的人口数量是呈现一个缓慢上升的趋势。在性别这一方面,男性和女性的数量也是呈现出一个逐年上升的现象,在人口属性方面,城镇人口的涨幅较大,而乡村人口数量则是逐年下降。
更多推荐
所有评论(0)