用python绘制直方图

作者: 橙子LifeX | 来源:发表于2017-03-10 23:07 被阅读3708次

    其实,学习数据分析,excel可以完成绝大多数的工作,只是课程中@tiger是用python做的,而且最近自己也在学习编程,所以就挑战一下新东西,学学用python做作业,感谢@余欣 的教程,让我一个python小白也能上手做作业,这个作业是在这两篇教程的基础上完成的:

    1. 致Python初学者们 - Anaconda入门使用指南
    2. 左手程序员,右手作家:你必须会的Jupyter Notebook

    下面开始做作业

    1. 下载数据集到本地

    一共两个文件,weight.txt 和 AirPassengers.csv

    weight.txt 中包含了一批体重数据,AirPassengers.csv中包含了日期和对应的乘客人数,两列数据。这次的任务就是求这两组数据的均值和方差,并画出直方图。

    2. 建立Jupyter Notebook

    把Jupyter Notebook安装好后,在终端内运行

    jupyter notebook
    

    浏览器会自动打开一个页面

    这里可以看到电脑的本地文件,在其中找到放置上一步数据文件的文件夹,并在这个目录下,点击右上角的“New”,建立一个新的notebook

    3. 导入数据,计算和输出
    #在输入窗口下输入:
    
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    from scipy import stats
    weight_data = pd.read_table('weight.txt')
    weight_data.shape
    
    #按Shift+Enter,就会出现结果
    
    #求均值
    
    weight_data['weight'].mean()
    
    50.7
    
    #求方差
    
    weight_data['weight'].var()
    
    39.27594936708859
    
    fig = plt.figure()
    x = weight_data['weight']
    ax = fig.add_subplot(111)
    numBins = 20
    ax.hist(x,numBins,color='blue',alpha=0.8,rwidth=0,9)
    plt.grid(true)#
    plt.title(u'weight')
    plt.show()
    
    #另一组数据,由于是csv格式,所以导入数据的代码略有不同
    
    Passengers_data = pd.read_csv('AirPassengers.csv')
    
    Passengers_data.shape
    
    (144, 2)
    
    Passengers_data['NumPassengers'].mean()
    
    280.2986111111111
    
    Passengers_data['NumPassengers'].var()
    
    14391.917200854701
    
    fig = plt.figure()
    x = Passengers_data['NumPassengers']
    ax = fig.add_subplot(111)
    numBins = 20
    ax.hist(x,numBins,color='blue',alpha=0.8,rwidth=0.9)
    plt.title(u'Passengers')
    plt.show()
    
    4. 试着描述数据集的特征

    这里第一个数据集是体重,大多数都在45-55之间,而有两个接近70,整体上,数据量不大,但是还是接近正态分布的。

    第二个有点挠头,是从49年 到 60年每个月的乘客数量,这个数据如果用直方图展示,表达的信息就是乘客数量的分布。可以看出来,从大量集中在350-400之间,400以上的数量很少,而11年来,只有两个月的乘客数量超过了600。

    对于这组数据,因为有时间维度,所以按照月份做一个叠加的柱状图,或者以时间为横轴,以人数为纵轴做一个曲线,似乎更能看出变化的规律所在。不过本次的作业是直方图,如何做柱状图和二维曲线,留给下一次再说吧。

    相关文章

      网友评论

        本文标题:用python绘制直方图

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