美文网首页程序员
Matplotlib小讲(python)(一)

Matplotlib小讲(python)(一)

作者: 肥宅_Sean | 来源:发表于2017-10-28 19:34 被阅读0次

    在学习一些算法,为了展示数据,Matplotlib会比较方便

    • 看标题,这是我打算写的这一系列的第一篇关于Matplotlib的简书
    • 每一篇这样的简书,都会围绕一个小例子展开
    • 所有有关代码,保证都经过测试,可以直接使用

    例子用的是Python3实现,但是在使用Matplotlib库上Python2 和 3几乎没区别


    本篇目录

    • 实例代码展示
    • 讲解实例代码的结构
    • 讲解实例代码的函数
    • 讲解特定参数的意义

    1.实例代码以及运行效果:

    import matplotlib.pyplot as plt
    # boxstyle是文本框类型 fc是边框粗细 sawtooth是锯齿形
    decisionNode = dict(boxstyle="sawtooth", fc="0.8")
    leafNode = dict(boxstyle="round4", fc="0.8")
    arrow_args = dict(arrowstyle="<-")
    # annotate 注释的意思
    def plotNode(nodeTxt, centerPt, parentPt, nodeType):
        createPlot.ax1.annotate(nodeTxt, xy=parentPt, xycoords='axes fraction',
                                xytext=centerPt, textcoords='axes fraction',
                                va="center", ha="center", bbox=nodeType, arrowprops=arrow_args)
    def createPlot():
        fig = plt.figure(1, facecolor='white')  # 新建一个画布,背景设置为白色的
        fig.clf()  # 将画图清空
        createPlot.ax1 = plt.subplot(111, frameon=False)  # 设置一个多图展示,但是设置多图只有一个
        plotNode('a decision node', (0.5, 0.1), (0.1, 0.5), decisionNode)
        plotNode('a leaf node', (0.8, 0.1), (0.3, 0.8), leafNode)
        plt.show()
    createPlot()
    

    运行效果

    2.实例代码的结构

    • 有两个函数 plotNode()、createPlot()。 plotNode()函数用于画节点
      createPlot()函数用于画图
    • decisionNodeleafNodearrow_args 是定义的三个全局变量,分别表示的是三个基本元素。decisionNodeleafNode在createPlot()函数调用plotNode()的时候作为参数。arrow_args是用来画箭头的
    • 最后一行,调用createPlot()

    3.函数讲解

    • 先看plotNode()
      plotNode函数有nodeTxt,centerPt, parentPt, nodeType这四个参数。nodeTxt用于记录nodeTxt,即节点的文本信息。centerPt表示那个节点框的位置。 parentPt表示那个箭头的起始位置。nodeType表示的是节点的类型,也就会用我们之前定义的全局变量。

    可能迷惑:createPlot.ax1 怎么回事?怎么突然跑出来了?
    解答:在createPlot中第三行createPlot.ax1 = plt.subplot(111, frameon=False) 进行了创建。意思是这个只是一个新框。annotate是注释的意思,也就是作为原来那个框的注释,也是添加一些新的东西。

    • 再看createPlot()
      fig = plt.figure(1, facecolor='white') 实现了画布创建,并且背景是白色的
      之后就是清除画布,并创建多图展示,但是设置参数是111,构建了一个1*1的模块,并操作对象指向第一个图。
      然后就是调用plotNode函数了,进行画点。
      plt.show()用于展示画图

    4.参数意义:

    • boxstyle是文本框类型
    • sawtooth是锯齿图文框
    • round4是圆一点的四边形(见图)
    • arrowstyle是设置箭头类型
    • 文档显示 Axes.annotate(*args, **kwargs)
    • xy是终点坐标
    • xytext是起点坐标

    可能疑问:为什么说是终点,但是却是箭头从这出发的?
    解答arrowstyle="<-" 看到没有,这是个反向的箭头

    相关文章

      网友评论

        本文标题:Matplotlib小讲(python)(一)

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