1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > label mpchart 饼图_运用matplotlib绘制折线图 散点图 饼图 柱形图的定义代码以及案例详解...

label mpchart 饼图_运用matplotlib绘制折线图 散点图 饼图 柱形图的定义代码以及案例详解...

时间:2020-09-25 22:48:07

相关推荐

label mpchart 饼图_运用matplotlib绘制折线图 散点图 饼图 柱形图的定义代码以及案例详解...

从导入数据开始

这里我们有一个现成的数据表包,现在我们所处环境是pycharm,安装环境是annaconda3环境,我们将通过这个数据表包来进行数据分析,运用matplotlib绘制折线图、散点图、饼图和柱形图

首先

然后我们要从这个表中找到我们需要的数据,通过debug展示我们想要的信息

在这里我们知道了这个表包有两个表:data、feature_names,然后我们现在需要提取这两个表中数据,并展示

这个表包是以键值对形式存入这两个表的,所以利用提取键值对值的方式来提取这两个表,然后print这两个表,再通过debug断点得到其中信息,右键并view as array,此时两个表的数据就展示出来了,方便我们下一步绘制图表的操作

绘制图标阶段

直接po代码

import matplotlib.pyplot as plt #导包等操作就不赘述了import numpy as npdatA = np.load(r'd:Desktoppopulations.npz') #导入我们要绘制的表date = datA['data']feature_names = datA['feature_names']print(date)print(feature_names)#1、绘制男女人口趋势变换柱状图p1 =plt.figure(figsize=(12,6)) #绘制一个12*6的表p1.add_subplot(1,2,1)#进行分图操作,生成一个位于 1行,2列,位于1列的表plt.rcParams['font.sans-serif']='SimHei'plt.rcParams['axes.unicode_minus']=False#这两步是转换文字类型为汉字型label = date[:-2:,0] #确定x轴的数据是取的哪一列 提取0列全部数据,且不选取后两行的数据,无步长时步长默认为':',选取全部的数据plt.bar(range(20),date[:-2:,2],width = 0.5,color = ('blue'))#x/y轴数值取值,range是确定x轴的数点的范围,为19个点,data是具体取y轴的列数和范围plt.xticks(range(20),label,rotation = 45) #设置x轴图例,此处将x轴的数点替换为第二列的(变量label)选定的数,并倾斜45度for x,y in zip(range(20),date[:-2:,2]): #给每个柱形图的数据头加上数值plt.text(x,y+10,y,ha='center',fontsize = 10,rotation = 45)plt.title('男性人口趋势')#加表标题p1.add_subplot(1,2,2) #绘制分图的第二张表,确定位置plt.bar(range(20),date[:-2:,3],width = 0.5,color = ('pink')) #bar是绘制柱形图的函数plt.xticks(range(20),label,rotation = 45)for x,y in zip(range(20),date[:-2:,3]):plt.text(x,y+10,y,ha='center',fontsize = 10,rotation = 45)plt.title('女性人口趋势')plt.show() #展示表#=================绘制男女人口占比饼图===============plt.figure()lable = ['男','女']plt.rcParams['font.sans-serif'] = 'SimHei'plt.rcParams['axes.unicode_minus'] = Falseexplode = [0.01,0.01] #饼图分块间分割距离men = sum(date[:-2:,2]) #得到男性人口数据women = sum(date[:-2:,3])#得到女性人口数据size = [men,women] #将我们需要的男女人口数据传进列表size中plt.pie(size,explode=explode,labels = lable,colors=('r','green'),pctdistance=0.6,startangle=90) #pie是绘制饼图函数plt.axis("equal")#盘一下让饼图更圆润plt.legend('men','women')#设置图例plt.title('1996-男女总人口对比图') #设置标题plt.show()#============分析我国人口结构变化情况以及变化速率的增减状况==============plt.figure(figsize=(8,8))plt.rcParams['font.sans-serif']='SimHei'plt.rcParams['axes.unicode_minus']=Falseman = date[:-2:,2][::-1]#选取男子人口的数据,此处需要从1995-的数据,所以要颠倒一下women = date[:-2:,3][::-1] #选取女子数据,理由同上year = date[:-2:,0][::-1]#选取年份数据,理由同上plt.scatter(range(20),man) #scatter函数是绘制散点图的函数,此处绘制男子的散点图plt.scatter(range(20),women)#绘制女子的散点图plt.xticks(range(20),year,rotation = 45)#更改图例plt.title('本国人口结构变化趋势图')plt.show()#=====================绘制城乡人口趋势变化=======================plt.figure(figsize=(8,8))plt.rcParams['font.sans-serif']='SimHei'plt.rcParams['axes.unicode_minus']=Falsecity = date[:-2:,4][::-1]contryside = date[:-2:,5][::-1]year = date[:-2:,0][::-1]plt.plot(range(20), city)plt.scatter(range(20), city)plt.plot(range(20), contryside,color = 'r')plt.scatter(range(20), contryside,color = 'r')for i,j in zip(range(20),city): #在图上标注数值的方法plt.text(i,j-3,j,va='center',fontsize=6)for i,j in zip(range(20),contryside):plt.text(i,j-3,j,va='center',fontsize=6)plt.xticks(range(20),year,rotation = 45)plt.title('本国城乡人口趋势变化')plt.show()

得到的图标样式如下

以上

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。