机器学习实战--Matplotlib绘制树形图(代码解析)

 本文的写作目的在于理解决策书Python绘图代码

参考:Matplotlib中annotate详解      https://blog.csdn.net/qq_30638831/article/details/79938967

import matplotlib.pyplot as plt
decisionNode=dict(boxstyle="sawtooth",fc="0.8")#decisionNode用于表示决策点方库属性,是一个
字典类型,下面两个类似
leafNode=dict(boxstyle="round4",fc="0.8")
arrow_args=dict(arrowstyle="<-")

#该函数用于设置箭头和注解,调用了matplotlib的annotate(),主要是掌握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('DecideNode',(0.5,0.1),(0.1,0.5),decisionNode)
    plotNode('leafNode',(0.8,0.1),(0.3,0.8),leafNode)
    plt.show()

注:在改程序中使用了变量createPlot.ax1这个变量,这是一种全局变量的表达方式。在两个子函数下的变量本来都是局部变量,不能跨出变量的作用域使用,此处使用“函数名.变量名”的方式,将变量申明为全局变量。

你可能感兴趣的:(机器学习实战--Matplotlib绘制树形图(代码解析))