深度入门学习

编程入门 行业动态 更新时间:2024-10-24 07:23:38

<a href=https://www.elefans.com/category/jswz/34/1769690.html style=深度入门学习"/>

深度入门学习

使用文本注解绘制树结点

import matplotlib.pyplot as plt# 定义文本框和箭头格式
decisionNode = dict(boxstyle="sawtooth", fc="0.8")  # dict()用于创建一个字典, boxstyle="sawtooth"表示注解框的边缘是波浪线,fc=”0.8” 是颜色深度
leafNode = dict(boxstyle="round4", fc="0.8")  #round4表示圆形
arrow_args = dict(arrowstyle="<-")  # 设置箭头的样式def plotNode(nodeTxt, centerPt, parentPt, nodeType):  # 绘制带箭头的注解,centerPt为节点中心坐标,parentPt 为起点坐标createPlot.axl.annotate(nodeTxt, xy=parentPt, xycoords='axes fraction', xytext=centerPt, textcoords='axes fraction',va="center", ha="center", bbox=nodeType, arrowprops=arrow_args) #xytext处的文本标注提供坐标(xycoords)中的xy处的点def createPlot():fig = plt.figure(1, facecolor='white')  # 设置背景色fig.clf()  # 清空画布createPlot.axl = plt.subplot(111, frameon=False)  # 表示图中有1行1列,绘图放在第几列, 有无边框, subplot(111)和subplot(1,1,1)是相同的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()

输出:

def getNumLeafs(myTree):numLeafs = 0#firstKey = tree.keys()[0]  书上的代码有点小错误,因为python里的字典是不支持索引的#如果运行,会报错'dict_keys' object does not support indexing,下面加以改正:for key in myTree.keys():firstStr = key #获取当前树myTree中第一个key,即该树的根节点secondDict = myTree[firstStr] #获取第一个key对应的内容,即根节点下的子树for key in secondDict.keys(): #根节点对应的各个分支,依次循环if type(secondDict[key]).__name__ == 'dict': #如果该子树还是一棵树,递归调用函数getNumLeafs(),获取子树的叶子结点数numLeafs += getNumLeafs(secondDict[key])else: #如果是叶子结点,则叶子数加1numLeafs += 1return numLeafs #返回当前树中叶子结点的个数
def getTreeDepth(myTree):maxDepth = 0   #用来记录最高子树的高度+1# firstKey = tree.keys()[0]  书上的代码有点小错误,因为python里的字典是不支持索引的,# 如果运行,会报错'dict_keys' object does not support indexing,下面加以改正:for key in myTree.keys():firstStr = key #获取树的根节点secondDict = myTree[firstStr] #获取树的子树for key in secondDict.keys(): #根节点对应的各个分支,依次循环#如果该子树还是一棵树,递归调用函数getTreeDepth(),获取子树的深度if type(secondDict[key]).__name__ == 'dict':thisDepth = 1 + getTreeDepth(secondDict[key])else: #如果是叶子结点,则返回1thisDepth = 1if thisDepth > maxDepth: #更新最大深度变量值maxDepth = thisDepthreturn maxDepth #返回最大深度

绘制树参考

更多推荐

深度入门学习

本文发布于:2024-03-04 02:11:20,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1707984.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:深度   入门

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!