• 小白学Python——Matplotlib 学习(1)


    众所周知,通过数据绘图,我们可以将枯燥的数字转换成容易被人们接受的图表,从而让人留下更加深刻的印象。而大多数编程语言都有自己的绘图工具,matplotlib就是基于Python的绘图工具包,使用它我们可以仅仅使用几行代码就生成 饼图、直方图、功率谱、条形图、错误图、散点图、气泡图,甚至生成动态图型也都很轻松。而且它的绘图方法丰富,可以在各种交互式环境中运行,且生成的图像质量高、兼容各种硬拷贝格式。

    matplotlib的官网地址是https://matplotlib.org/index.html,下面这些是他们官网的一些示例图形。

    pip安装

    Matplotlib的安装比较容易,可以直接通过pip安装,也可以通过下载安装包的方式安装。博主使用的是python3,相关的安装命令如下:

    pip install matplotlib

    Matplotlib是整个包,matplotlib.pyplotMatplotlib中的一个模块。对于pyplot模块中的功能,始终存在“当前”图形和轴(根据请求自动创建)。例如,在下面的例子中,在第一次调用plt.plot创建轴,则后续调用plt.plot在同一坐标添加额外的线,以及 plt.xlabelplt.ylabelplt.titleplt.legend设置轴标签和标题和添加的图例。pylab是一个便利模块,可以 在单个命名空间中批量导入 matplotlib.pyplot(用于绘图)和numpy(用于数学和使用数组)。不推荐使用pylab,并且由于命名空间污染而强烈建议不要使用它。请改用pyplot。对于非交互式绘图,建议使用pyplot创建图形,然后使用OO界面进行绘图。pyplot是matplotlib的一个模块,pylab是与matplotlib共同安装的模块。

    matplotlib的用户指南分为三个等级:入门,中级,高级。在入门级,主要介绍下图内容

    这里我首先介绍 使用指南 部分,即 Usage Guide

    1.一张图的组成

    在使用matplotlib画图时,你会发现各种参数,下面就说说这些参数具体设置什么

     简单绘图

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(0, 2, 100)
    
    plt.plot(x, x, label='linear')
    plt.plot(x, x**2, label='quadratic')
    plt.plot(x, x**3, label='cubic')
    
    plt.xlabel('x label')
    plt.ylabel('y label')
    
    plt.title("Simple Plot")
    
    plt.legend()
    
    plt.show()
    

      

    sinx 函数

    import matplotlib.pyplot as plt
    import numpy as np
    x = np.arange(0, 10, 0.2)
    y = np.sin(x)
    fig, ax = plt.subplots()
    ax.plot(x, y)
    plt.title("Sin(x)") plt.show()

      

    自定义画图函数 

    import matplotlib.pyplot as plt
    import numpy as np
    
    def my_plotter(ax, data1, data2, param_dict):
        """
        A helper function to make a graph
    
        Parameters
        ----------
        ax : Axes
            The axes to draw to
    
        data1 : array
           The x data
    
        data2 : array
           The y data
    
        param_dict : dict
           Dictionary of kwargs to pass to ax.plot
    
        Returns
        -------
        out : list
            list of artists added
        """
        out = ax.plot(data1, data2, **param_dict)
        return out
    
    # which you would then use as:
    
    data1, data2, data3, data4 = np.random.randn(4, 100)
    fig, ax = plt.subplots(1, 1)
    my_plotter(ax, data1, data2, {'marker': 'x'})
    
    plt.show()
    

      

    生成2个子图

    fig, (ax1, ax2) = plt.subplots(1, 2)
    my_plotter(ax1, data1, data2, {'marker': 'x'})
    my_plotter(ax2, data3, data4, {'marker': 'o'})
    

      

    交互模式

    交互模式也可以通过matplotlib.pyplot.ion(),然后关闭通过打开matplotlib.pyplot.ioff()

    #交互式示例
    import matplotlib.pyplot as plt
    plt.ion()
    plt.plot([1.6, 2.7])
    
    plt.title("interactive test")
    plt.xlabel("index")
    
    ax = plt.gca()
    ax.plot([3.1, 2.2])
    
    #旧版本调用draw()显示图象
    plt.draw()
    

      

    #非交互式示例
    import numpy as np
    import matplotlib.pyplot as plt
    
    plt.ioff()
    for i in range(3):
        plt.plot(np.random.rand(10))
        plt.show()
    

      

    在交互模式下,pyplot功能会自动绘制到屏幕上。

    以交互方式绘制时,如果除了pyplot函数之外还使用对象方法调用,则draw()只要您想刷新绘图,就会调用

    在要生成一个或多个图形的脚本中使用非交互模式,并在结束或生成一组新图形之前显示它们。在这种情况下,用于 show()显示图形并阻止执行,直到您手动销毁它们。

  • 相关阅读:
    另一种方式实现事务码SE16里的结果集修改
    如何修改Fiori Launchpad里Tile计数调用的时间间隔
    Opportunity的chance of success的赋值逻辑
    Smart template的控件能否当成普通控件来用
    一个查看UI5控件所有公有方法的小技巧
    到底哪种类型的错误信息会阻止business transaction的保存
    Java实现 LeetCode 453 最小移动次数使数组元素相等
    Java实现 LeetCode 453 最小移动次数使数组元素相等
    Java实现 LeetCode 453 最小移动次数使数组元素相等
    Java实现 LeetCode 452 用最少数量的箭引爆气球
  • 原文地址:https://www.cnblogs.com/adam012019/p/11430783.html
Copyright © 2020-2023  润新知