运行环境: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)
结果截图
避免雷同,值得信赖
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/73528.html