zoukankan      html  css  js  c++  java
  • 数据分析与展示---Matplotlib入门

    简介:

    一:Matplotlib库的介绍

    (一)简单使用

    二:区域划分subplot

    三:plot函数

    四:pyplot的中文显示

    (一)方法一:修改rcParams参数

    (二)方法二(推荐),在有中文地方增加属性:fontproperties

    五:pyplot的文本显示方法

    六:pyplot的子绘图区域

    (一)subplot2grid()

    (二)GridSpec类加上subplot方法


     

    一:Matplotlib库的介绍

     

    (一)简单使用

    import matplotlib.pyplot as plt
    
    plt.plot([3,1,4,5,2])
    plt.ylabel("grade")
    plt.show()

    import matplotlib.pyplot as plt
    
    plt.plot([3,1,4,5,2])
    plt.ylabel("grade")
    plt.savefig("test",dip=600)  #png文件,dpi修改输出质量
    plt.show()

     

    import matplotlib.pyplot as plt
    
    plt.plot([0,2,4,6,8],[3,1,4,5,2])  #第一个列表是x轴列表,第二个是y轴列表
    plt.ylabel("grade")
    plt.axis([-1,10,0,6])  #前两个是x轴的取值范围-1到10,后两个是y轴取值范围0-6
    plt.show()

     

    二:区域划分subplot

     

    注意:划分区域可以不使用','

    import matplotlib.pyplot as plt
    import numpy as np
    
    def f(t):
        return np.exp(-t)*np.cos(2*np.pi*t)  #衰减曲线
    
    a = np.arange(0.0,5.0,0.02)
    
    plt.subplot(211)  #划分为两行一列,选取第一个区域
    plt.plot(a,f(a))  #绘制衰减曲线
    
    plt.subplot(2,1,2)  #在将绘图区域换到整个绘图区域的第二个,自动切换
    plt.plot(a,np.cos(2*np.pi*a),'r--')  #绘制余弦曲线
    
    plt.show()

     

     三:plot函数

     

    import matplotlib.pyplot as plt
    import numpy as np
    
    a = np.arange(10)
    
    plt.plot(a,a*1.5,a,a*2.5,a,a*3.5,a,a*4.5)  #每两个是一条曲线
    plt.show()

    当我们不选择线条形状为空时,可以变为其他非线性图

    import numpy as np
    import matplotlib.pyplot as plt
    
    ax = plt.subplot()
    ax.plot(10*np.random.randn(100),10*np.random.randn(100),'o')
    ax.set_title("Simple Scatter")
    
    plt.show()

    如何控制颜色等曲线属性:通过参数format_string

    import matplotlib.pyplot as plt
    import numpy as np
    
    a = np.arange(10)
    
    plt.plot(a,a*1.5,'go-',a,a*2.5,'rx',a,a*3.5,'*',a,a*4.5,'b-.')
    plt.show()

     

    四:pyplot的中文显示

    (一)方法一:修改rcParams参数

     

    import matplotlib.pyplot as plt
    import matplotlib
    
    matplotlib.rcParams['font.family']='SimHei'
    
    plt.plot([0,2,4,6,8],[3,1,4,5,2])#第一个列表是x轴列表,第二个是y轴列表
    plt.ylabel("纵向轴")     #默认是不允许中文,会报错
    plt.axis([-1,10,0,6])   #前两个是x轴的取值范围-1到10,后两个是y轴取值范围0-6
    plt.show()

     

    import matplotlib.pyplot as plt
    import numpy as np
    import matplotlib
    
    matplotlib.rcParams['font.family'] = "SimHei"
    matplotlib.rcParams['font.size'] = 20
    
    a = np.arange(0.0,5.0,0.02)
    
    plt.xlabel("横轴:时间")
    plt.ylabel("纵轴:振幅")
    plt.plot(a,np.cos(2*np.pi*a),'r--')
    
    plt.show()

     

    (二)方法二(推荐),在有中文地方增加属性:fontproperties

    import matplotlib.pyplot as plt
    import numpy as np
    
    a = np.arange(0.0,5.0,0.02)
    
    plt.xlabel("横轴:时间",fontproperties="SimHei",fontsize=20)
    plt.ylabel("纵轴:振幅",fontproperties="SimHei",fontsize=20)
    plt.plot(a,np.cos(2*np.pi*a),'r--')
    
    plt.show()

     

    五:pyplot的文本显示方法

    import matplotlib.pyplot as plt
    import numpy as np
    
    a = np.arange(0.0,5.0,0.02)
    plt.plot(a,np.cos(2*np.pi*a),'r--')
    
    
    plt.xlabel("横轴:时间",fontproperties="SimHei",fontsize=20,color="green")
    plt.ylabel("纵轴:振幅",fontproperties="SimHei",fontsize=20)
    plt.title(r'正弦波实例 $cons(2pi x)$',fontproperties="SimHei",fontsize=15)
    plt.text(2,1,r'$mu=100$',fontsize=15) #2 1 是横纵坐标
    
    plt.axis([-1,6,-2,2])
    plt.grid(True)
    plt.show()

     

    plt.annotate(r"$mu=100$",xy=(2,1),xytext=(3,1.5),arrowprops=dict(facecolor="black",shrink=0.1,width=2)) #shrink是箭头两边到图像,文字之间的间隔(相对于箭头的比例)

     

    六:pyplot的子绘图区域

    上面使用了subplot进行了简单的区域划分,下面考虑复杂的绘图区域的划分

    (一)subplot2grid()

    (二)GridSpec类加上subplot方法

     

    总结

  • 相关阅读:
    MFC 中 Tooltip 实现的几种方式
    C++11带来的优雅语法
    socket异步编程--libevent的使用
    单元测试与解耦
    Ubuntu(Linux) + mono + jexus +asp.net MVC3
    常见算法总结
    NET里简易实现AOP
    KMP算法
    简易的集群通讯组件
    数据访问层的封装与抽象
  • 原文地址:https://www.cnblogs.com/ssyfj/p/9293292.html
Copyright © 2011-2022 走看看