直方图的绘制

作者: 李奕星 | 来源:发表于2017-03-12 16:27 被阅读0次

这是第二次作业了,希望比起之前能取得一些进步!

首先来做的是体重数据集

#导入模块阶段
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

导入模块的作用是只要导入了一个模块,就可以引用它的任何公共的函数、类或属性。以上的四条命令含义是:

  • 导入pandas模块作为pd
  • 导入numpy模块作为np
  • 导入matplotlib模块的pyplot命令作为plt
  • 从scipy模块导入stats命令。
#导入数据
weight_data = pd.read_table('C:\\Users\\dell01\\Desktop\\weight.txt')

数据的导入和我之前使用的R语言基本相同

weight_data.shape
(80, 1)

我对shape命令的理解是展现数据结构,即数据为一个80*1的矩阵(或称之为列向量)

weight.mean()
weight.var()
---------------------------------------------------------------------------

NameError                                 Traceback (most recent call last)

<ipython-input-4-967b4d554b7e> in <module>()
----> 1 weight.mean()
      2 weight.var()


NameError: name 'weight' is not defined

在这里遇到了第一个也是最常见的的错误——没有定义变量

#定义weight变量
weight = weight_data['weight']
weight.mean()
weight.var()
39.27594936708859

接下来我遇到了第二个问题,同时把weight.mean()和weight.var()放在同一个区块中运行,结果只输出了方差的值,于是我将二者分进不同区块就能很好地得到结果

#均值
weight.mean()
50.7
#方差
weight.var()
39.27594936708859
#作出直方图
plt.rcParams['font.sans-serif']=['SimHei']
plt.hist(weight,bins=15,rwidth=0.9)
plt.title('体重')
plt.show()
weight1.png

接下来通过改变bins值来得到不同的直方图

#改变bins值作出直方图
plt.rcParams['font.sans-serif']=['SimHei']
plt.hist(weight,bins=10,rwidth=0.9)
plt.title('体重')
plt.show()
weight2.png
plt.rcParams['font.sans-serif']=['SimHei']
plt.hist(weight,bins=20,rwidth=0.9)
plt.title('体重')
plt.show()
weight3.png

由直方图的结果我们可以看出,bins的数值影响着组距,即bins的数值为分组的个数

接下来来研究飞机乘客数据集

#导入数据
AirPassengers_data = pd.read_csv('C:\\Users\\dell01\\Desktop\\AirPassengers.csv')
AirPassengers_data.shape
(144, 2)

导入数据与之前基本相同,区别是这次的数据为csv格式,命令从read_table改为read_csv,该数据为一个144*2的矩阵

passengers = AirPassengers_data['NumPassengers']
mouth = AirPassengers_data['Month']
#均值
passengers.mean()
280.2986111111111
#方差
passengers.var()
14391.917200854701
#作出直方图
plt.rcParams['font.sans-serif']=['SimHei']
plt.hist(passengers,bins=15,rwidth=0.9)
plt.title('乘客')
plt.show()
passengers1
#改变bins值作出直方图
plt.rcParams['font.sans-serif']=['SimHei']
plt.hist(passengers,bins=10,rwidth=0.9)
plt.title('乘客')
plt.show()
passengers2.png
plt.rcParams['font.sans-serif']=['SimHei']
plt.hist(passengers,bins=20,rwidth=0.9)
plt.title('乘客')
plt.show()
passengers3.png

同样,通过改变bins值得到不同的直方图

对于体重数据集,我们可以得到它的均值为50.7,方差为39.28,由直方图可以看出该数据中间高两边低,体重在45~50之间的人群人数最为庞大,可见该人群整体偏瘦。

对于飞机乘客数据集,我们可以得到均值为280,方差为14391,而由直方图可以得到数据在100200之间出现频数最多,在500600间出现频数最少,由乘客人数从低到高依次排列,频数呈下降趋势。由数据信息可得,该数据为从1949年到1960年各月乘飞机的乘客人数数据,根据观察可得,从1949年到1953年之间,各月出游乘客人数多集中于100~200之间,而在1953年之后出游人数明显有所提升,而出游乘客人数高于500的月份多集中于1960年,这也正是导致直方图呈递减趋势的原因。

这次作业对于一个第一次用Python的新手来说上手还是挺麻烦的,安装和调用Anaconda和Jupyter Notebook也挺懵逼的,多亏余博士的教学和群里各位的讨论,让我在做作业时少走不少弯路,同时坚持使用Markdown也让我逐渐适应起来,希望能做到tiger所说的be better。

相关文章

  • R语言可视化(四):频率直方图绘制

    04.直方图绘制 清除当前环境中的变量 设置工作目录 hist函数绘制频率直方图 ggplot2包绘制直方图 gg...

  • bar

    matlab中函数bar绘制直方图中的应用函数bar(x)可以绘制直方图

  • 绘制直方图

    练习:绘制直方图

  • 50. 彩色直方图源码

    彩色直方图绘制步骤: 读取图片信息 各通道值计数与归一化 设置横纵坐标 绘制蓝绿红直方图 显示所有直方图 彩色直方...

  • 直方图

    一、 绘制直方图 1.1 代码 1.2 效果 二、全局直方图均衡 2.1 代码 1.2 效果 三、直方图匹配 3....

  • 计算绘制图像灰度直方图

    OpenCV中分析绘制直方图并没有直接可用的函数,以下是绘制直方图统计的一种实现。paint_histogram....

  • OpenCV-Python学习(十一):直方图

    目录: 1.绘制直方图1)一维直方图2)2D直方图 2.直方图均衡化1)全局直方图均衡化2)CLAHE(限制对比度...

  • 认识matplotlib—直方图、饼图、箱线图

    本节主要介绍如何绘制直方图、饼图、箱线图。 直方图 饼图 箱线图

  • 绘制直方图

    《OpenCV轻松入门:面向Python》读书笔记作者:李立宗出版社:电子工业出版社出版时间:2019-05 第1...

  • hist函数

    hist 用于绘制直方图,下面介绍每个参数的作用; 1)x: 用于绘制直方图的数据,该参数的值为一个向量 代码示例...

网友评论

    本文标题:直方图的绘制

    本文链接:https://www.haomeiwen.com/subject/jhotnttx.html