美文网首页解密大数据
python学统计第二课 复现与作业

python学统计第二课 复现与作业

作者: Bog5d | 来源:发表于2017-07-24 23:00 被阅读63次

    可视化

    导入数据

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    
    %config InlineBackend.figure_format = 'retina' # 设置图像清晰度
    
    data = pd.read_csv('WorldIndex.csv')
    
    data.head()
    
    
    data.info()
    
    
    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 177 entries, 0 to 176
    Data columns (total 5 columns):
    Country            177 non-null object
    Continent          177 non-null object
    Life_expectancy    169 non-null float64
    GDP_per_capita     169 non-null float64
    Population         176 non-null float64
    dtypes: float64(3), object(2)
    memory usage: 7.0+ KB
    
    df = data.dropna()
    df.info()
    ##这行的意思是删除缺失行。
    ###不过dropna是什么意思
    
    <class 'pandas.core.frame.DataFrame'>
    Int64Index: 164 entries, 0 to 175
    Data columns (total 5 columns):
    Country            164 non-null object
    Continent          164 non-null object
    Life_expectancy    164 non-null float64
    GDP_per_capita     164 non-null float64
    Population         164 non-null float64
    dtypes: float64(3), object(2)
    memory usage: 7.7+ KB
    
    # 重新定义列名
    df.columns = ['country', 'continent', 'life', 'gdp', 'popu']
    

    直方图

    plt.hist(df.life, bins=20, rwidth=0.9)  # bins 设置区间数,rwidth设置柱子相对宽度
    plt.show()
    
    
    output_8_0.png

    箱图

    绘制人均寿命的箱图,使用boxplot函数

    plt.boxplot(df.life)
    plt.show()
    
    output_10_0.png
    ###绘制人均gdp箱图
    plt.boxplot(df.gdp)
    plt.show()
    
    output_11_0.png

    条形图

    value_counts() 应该就是统计的函数

    # 统计每个州的国家数
    conti_count = df.continent.value_counts()
    conti_count
    
    
    Africa           48
    Europe           41
    Asia             36
    North America    19
    South America    11
    Oceania           9
    Name: continent, dtype: int64
    
    # 获取各大州名称
    conti = list(conti_count.index)
    conti
    
    
    ['Africa', 'Europe', 'Asia', 'North America', 'South America', 'Oceania']
    

    list()本例中使用的是list函数

    x = np.arange(len(conti))
    x
    ### 这个len()函数是干嘛的呢
    
    array([0, 1, 2, 3, 4, 5])
    
    # 条形图
    plt.bar(x, conti_count)
    # 设置横坐标
    plt.xticks(x, conti, rotation=70)   # rotation 旋转横坐标标签
    plt.show()
    
    
    ### 此例中使用的是plt.bar,plt.xticks等函数
    
    output_17_0.png

    饼图 plt.pie

    绘制各大洲国家数量占比

    plt.pie(conti_count, labels=conti, autopct='%1.1f%%')  # autopct 显示占比
    plt.axis('equal')  # 调整坐标轴的比例
    plt.show()
    
    
    output_19_0.png

    plt.pie() 和plt.axis() 这两个函数怎么理解呢? 这些函数,是不是只要使用过一次,理解其基本用法,就可以啦。至少现在可以不用太在意原理?

    散点图

    人均寿命和gdp之间的关系

    plt.plot(df.gdp, df.life)
    plt.show()
    
    ![output_24_0.png](https://img.haomeiwen.com/i4421285/cfd268606f34e3cf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    此处所用到的函数,是plt.plot. 相当于把两列数据分别定义成x,y轴。

    下面是把线描绘成点,只是加入颜色,就能变为点吗?

    plt.plot(df.gdp, df.life, 'g.')  # 'g.' 表示用绿色的点绘制
    plt.show()
    
    
    ![output_25_0.png](https://img.haomeiwen.com/i4421285/54fffaab7f573108.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    plt.scatter(df.gdp, df.life)
    plt.show()
    ### 此处使用的是plt.scatter函数,相当于是专门的散点图函数。在描绘点,这方面比plt.plot更到位
    
    output_25_0.png

    矩阵图 pd.scatter_matrix()函数

    多个变量时,可以使用

    pd.scatter_matrix(df)
    plt.show()
    
    Paste_Image.png

    相当于同时把几列数据同时绘制了


    数据图表

    plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 
    
    plt.scatter(df.gdp, df.life)
    
    plt.xlabel('人均GDP(美元)')  # x轴名称
    plt.ylabel('人均寿命(年)')   # y轴名称
    plt.title('各国健康和经济水平关系(2015)')  # 图标题
    
    plt.show()
    
    output_30_0.png output_32_0.png

    ??? 此处的对数变换是什么概念。 就是一种数据的表达方式吗?

    ###设置刻度显示方式
    
    plt.scatter(df.gdp, df.life)
    plt.xscale('log')
    
    plt.xlabel('人均GDP(美元)')
    plt.ylabel('人均寿命(年)')
    plt.title('全球健康和收入水平关系(2015)')
    
    tick_val = [1000,10000,100000]
    tick_lab = ['1k','10k','100k']
    plt.xticks(tick_val, tick_lab)  # 重置x坐标刻度
    
    plt.show()
    
    ![output_37_0.png](https://img.haomeiwen.com/i4421285/aaa41476eabf85a4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) output_40_0.png ![output_46_0.png](https://img.haomeiwen.com/i4421285/b050dd2271a5237d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) pngpng

    此处新增知识点:

    1. 指定位置添加文字,plt.text(x,y,"文本")
    2. 添加背景网格函数plt.grid(True)

    ??? plt.grid()这种函数是不是布尔函数啊,就是只有true和false的参数。

    作业

    绘制人均GDP数据的直方图,要求:

    设置图片标题和坐标轴名称

    只显示人均GDP在2万美元以内的数据

    设置区间数bins为30

    颜色设置成绿色

    plt.hist(df.gdp,bins=30,rwidth=0.9,color='g')
    plt.rcParams['font.sans-serif']=['SimHei']
    plt.xlabel("人均GDP(美元)")
    plt.ylabel("年龄(岁)")
    plt.xlim([0,20000])
    plt.show()
    
    pngpng
    
    

    相关文章

      网友评论

        本文标题:python学统计第二课 复现与作业

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