美文网首页Python数据分析入门学习笔记
数据分析(4)--Matplotlib入门

数据分析(4)--Matplotlib入门

作者: 坚持后的收获 | 来源:发表于2019-04-12 13:06 被阅读117次

    一、概述

    Matplotlib是python中的一个包,主要用于绘制2D图形(当然也可以绘制3D,但是需要额外安装支持的工具包)。在数据分析领域它有很大的地位,而且具有丰富的扩展,能实现更强大的功能。能够生成各种格式的图形(诸如折线图,散点图,直方图等等),界面可交互(可以利用鼠标对生成图形进行点击操作),同时该2D图形库跨平台,即既可以在Python脚本中编码操作,也可以在Jupyter Notebook中使用,以及其他平台都可以很方便的使用Matplotlib图形库。

    实例:

    import matplotlib.pyplot as plt
    import numpy as np
    %matplotlib inline
    
    
    x = np.linspace(0,2*np.pi,100)
    y = np.sin(x)
    plt.plot(x,y)
    

    结果:

    运行结果

    二、Matplotlib简单绘图(plot)

    实例:

    a = [1, 2, 3]
    b = [4, 5, 6]
    plt.plot(a, b)
    
    #将线条设置成--
    plt.plot(a, b, '--')
    

    运行结果:

    第一结果
    --线条结果
    实例:
    • 在一个坐标轴画两个图
    a = [1, 2, 3]
    b = [4, 5, 6]
    plt.plot(a, b)
    c = [10,8,6]
    d = [1,8,3]
    #第一个图的线条为红色--
    #第二个图的为蓝色*
    plt.plot(a,b, 'r--', c,d, 'b*')
    

    运行结果:

    运行结果

    实例:

    • X/Y轴label设置
    t = np.arange(0.0, 2.0, 0.1)
    
    s = np.sin(t*np.pi)
    #画图
    plt.plot(t,s,'r--',label='aaaa')
    plt.plot(t*2, s, 'b--', label='bbbb')
    plt.xlabel('this is x')
    plt.ylabel('this is y')
    plt.title('this is a demo')
    plt.legend()#显示样式
    

    运行结果:

    运行结果

    三、Matplotlib绘图(Subplot)

    • 多个坐标轴多个图
      实例:
    x = np.linspace(0.0, 5.0)
    y1 = np.sin(np.pi*x)
    y2 = np.sin(np.pi*x*2)
    
    plt.subplot(221)#表示生成2行2列,在第1个坐标轴里画图
    plt.plot(x, y1, 'b--')#第一个图
    plt.ylabel('y1')
    
    plt.subplot(222)#表示生成2行2列,在第2个坐标轴里画图
    plt.plot(x, y2, 'r--')#第二个图
    plt.ylabel('y2')
    plt.xlabel('x')
    
    plt.subplot(223)#表示生成2行2列,在第3个坐标轴里画图
    plt.plot(x, y1, 'r*')#第三个图
    plt.subplot(224)
    
    plt.plot(x, y1, 'b*')#第四个图
    plt.show()#显示图画
    

    运行结果:

    运行结果

    实例:

    figure, ax = plt.subplots(2,2)
    ax[0][0].plot(x, y1)#在第1坐标轴画图
    ax[0][1].plot(x, y2)#在第2坐标轴画图
    plt.show()
    

    运行结果:

    运行结果

    四、Pandas绘图

    *Series
    首先我们导入所有的模块:
    import numpy as np
    import pandas as pd
    from pandas import Series,Dataframe
    import matplotlib.pyplot as plt
    实例:

    s1 = Series(np.random.randn(1000)).cumsum()
    s2 = Series(np.random.randn(1000)).cumsum()
    
    s1.plot(kind='line',grid=True, label='S1', title='This is Series')
    s2.plot(label='S2')
    
    plt.legend()
    plt.show()
    

    运行结果:

    image.png
    实例:
    fig, ax = plt.subplots(2,1)
    print(ax)
    print('*******************')
    ax[0].plot(s1)
    ax[1].plot(s2)
    plt.show()
    

    运行结果:

    运行结果
    实例:
    #使用subplots
    fig, ax = plt.subplots(2,1)
    
    s1[0:10].plot(ax=ax[0], label='S1', kind='bar')
    s2.plot(ax=ax[1], label='S2')
    
    plt.show()
    

    运行结果:

    image.png
    • DataFrame
      实例:
    df = DataFrame(
        np.random.randint(1,10,40).reshape(10,4),
        columns=['A','B','C','D']
    )
    #柱状图
    df.plot(kind='bar')
    plt.show()
    
    #横柱
    df.plot(kind='barh')
    plt.show()
    
    df.plot(kind='bar', stacked=True)
    plt.show()
    
    #面积图
    df.plot(kind='area')
    plt.show()
    

    运行结果:

    运行结果
    运行结果

    五、matplotlib里的直方图和密度图

    • 直方图
      实例:
    #直方图
    s = Series(np.random.randn(1000))
    plt.hist(s, rwidth=0.9)
    print(plt.hist(s, rwidth=0.9))
    print('****************')
    plt.show()
    
    a = np.arange(10)
    plt.hist(a,rwidth=0.9)
    plt.show()
    
    re = plt.hist(s, rwidth=0.9)
    print(len(re))
    print('****************')
    print(re[0])
    print('****************')
    print(re[1])
    print('****************')
    print(re[2])
    plt.show()
    
    plt.hist(s, rwidth=0.9,bins=20, color='r')#设置为红色
    plt.show()
    

    运行结果:

    运行结果
    运行结果
    运行结果
    • 密度图
      实例:
    #将`kind`参数设置`kde`
    s.plot(kind='kde')
    print(s.plot(kind='kde'))
    plt.show()
    
    运行结果

    相关文章

      网友评论

        本文标题:数据分析(4)--Matplotlib入门

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