1、matplotlib 介绍
    matplotlib 是一个Python的2D绘图库。通过简单的几行代码即可生产一个2D图形。图形类型包括折线图,散点图,曲线图,直方图,条形图,饼状图等等。
    matplotlib这个模块里最重要的一个子模块是 matplotlib.pyplot , 这个模块是一个“命令风格”的绘图函数集合。其绘图的思路和函数用法与MATLAB非常相似。“命令风格”的绘图函数,意味着使用这里面的函数要抛弃面向对象的概念,回到指令式编程的思路里。但这只是形式上的改变,绘图过程的本质仍然是面向对象的。这里的对象是一个类似“画布”的东西。默认绘图函数的作用“画布”是距离函数调用最近的那一张“画布”,有相应的函数可以修改当前作用“画布”。
    当执行pyplot 模块里的函数时,函数会默认生成一个图形对象,然后在上面作画,绘出图形。写上标题,写文字说明,写上坐标说明等等操作都可以看成是在这幅“画布”上重复画图,面向的都是同一个对象。所以,绘图代码从形式上看起来和标准的面向对象写法不一样。实际上是因为这些函数都有一个默认的作用对象:当前“画布”。这个作用对象是可以改的,有图形和轴的概念(即:figure和axes ),有相应的函数获取作用对象。
    除了指令式编程外,还可以用面向对象的方式完成绘图编程。即将图形对象当成作用对象,调用其支持的方法,修改其属性。这就完全是面向对象的写法了。熟悉面向对象方式的可以使用这种写法。
    所有的对图形的操作都是直接调用函数来完成的。调用函数时默认重复地在一个“画布”上做这些操作。要注意这个“画布”是一个不可变的,临时的对象。绘画完成后调用 show() 函数可以显示图形,但再次调用show()函数就什么也看不到了。有点像paramiko 里的send() 函数,回显信息是一次性的,读一次就没了。。 可以用savefig()函数保存图画为一个图片文件。savefig是保存图画当前的状态,保存完后还可以继续画,只要不去show(),图画就一直在。注意保存图画时需要指定图画的名字,名字的扩展名有限制。只有那几种类型(png, pdf 等,没有 jpg 。。)。

    两个最全面的示例网站:
    https://matplotlib.org/
    https://www.matplotlib.org.cn/
    里面有大量的绘图指导和示例代码。

    2、pyplot 模块内函数介绍
    plot() 函数:
    画折线图。基本格式:plot(x, y) x和y 都是里列表。一个是横轴,一个是纵轴。

    scatter()函数:
    画散点图。

    pie()函数:
    画饼状图

    bar()函数:
    画条形图

    hist()函数:
    画直方图(和条形图不一样)

    3、图形绘制要点总结
    绘制图形的过程中有很多参数需要设置,感觉有些杂乱,没有头绪。这里有一幅图,总结了几乎所有绘制图形过程中需要设置的参数。

    4、一次绘制多个图形
    figure()函数:
    多个图形,意味着多个figure 。用figure()函数创建

    subplot()函数:
    创建子图。注意参数格式。subplot(2,2,3) 是创建一个2行2列的多子图图形,绘制当前的第三个子图。