实验一 分析1996~2015年人口数据特征间的关系(改装版


运行环境:pycharm

使用库:mpl_toolkits、NumPy、matplotlib.pyplot

数据(populations.npz)

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

[['2015年' 137462.0 70414.0 67048.0 77116.0 60346.0]
 ['2014年' 136782.0 70079.0 66703.0 74916.0 61866.0]
 ['2013年' 136072.0 69728.0 66344.0 73111.0 62961.0]
 ['2012年' 135404.0 69395.0 66009.0 71182.0 64222.0]
 ['2011年' 134735.0 69068.0 65667.0 69079.0 65656.0]
 ['2010年' 134091.0 68748.0 65343.0 66978.0 67113.0]
 ['2009年' 133450.0 68647.0 64803.0 64512.0 68938.0]
 ['2008年' 132802.0 68357.0 64445.0 62403.0 70399.0]
 ['2007年' 132129.0 68048.0 64081.0 60633.0 71496.0]
 ['2006年' 131448.0 67728.0 63720.0 58288.0 73160.0]
 ['2005年' 130756.0 67375.0 63381.0 56212.0 74544.0]
 ['2004年' 129988.0 66976.0 63012.0 54283.0 75705.0]
 ['2003年' 129227.0 66556.0 62671.0 52376.0 76851.0]
 ['2002年' 128453.0 66115.0 62338.0 50212.0 78241.0]
 ['2001年' 127627.0 65672.0 61955.0 48064.0 79563.0]
 ['2000年' 126743.0 65437.0 61306.0 45906.0 80837.0]
 ['1999年' 125786.0 64692.0 61094.0 43748.0 82038.0]
 ['1998年' 124761.0 63940.0 60821.0 41608.0 83153.0]
 ['1997年' 123626.0 63131.0 60495.0 39449.0 84177.0]
 ['1996年' 122389.0 62200.0 60189.0 37304.0 85085.0]]

实现步骤:


使用NumPy库读取人口数据
创建画布,并添加子图
在两个子图上分别绘制散点图和折线图
显示(保存)图片
分析未来人口变化趋势(略)

完整代码:

import pandas as pd
from sklearn import datasets
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

data = np.load('population.npz', allow_pickle=True)
# print(data.files)
# print(data['data'])
# print(data['feature_names'])
print(data['data'])
plt.rcParams['font.sans-serif'] = 'SimHei'
name = data['feature_names']
values = data['data']

def function(data):
    from mpl_toolkits.mplot3d import Axes3D

    #print(dims, types)
    flg=plt.figure()
    ax=Axes3D(flg)
    o = 0

    lei = ["nan","nv","cheng","nong"]
    for i in range(4):
        x = []
        y = []
        z = []
        for j in range(20):
            print(data['data'][j][0][:4])
            x.append(int(data['data'][j][0][:4]))
            y.append(int(data['data'][j][i + 2]))
            z.append(i)
        ax.scatter(x, z, y, label=lei[i])
    # for iris_type in types:
    #     o = o + 1
    #     tmp_data=iris_data[iris_data.species ==iris_type]
    #     x,y,z = tmp_data[dims['x']], tmp_data[dims['z']],tmp_data[dims['z']]
    #     x = y =z =[1+o,2+o,3+o,4+o,5+o]
    #     ax.scatter(x, y, z, label=o)
    # print(type(tmp_data[dims['z']]))
    ax.legend(loc='upper left')
    ax.set_zlabel('renshu')
    ax.set_xlabel('nianfen')
    ax.set_ylabel('leibie')

    plt.show()

if __name__ == '__main__':
    function(data)

结果截图

实验一 分析1996~2015年人口数据特征间的关系(改装版_第1张图片

 

实验一 分析1996~2015年人口数据特征间的关系(改装版_第2张图片实验一 分析1996~2015年人口数据特征间的关系(改装版_第3张图片

 避免雷同,值得信赖

你可能感兴趣的:(python,笔记,python,pycharm,开发语言)