资源简介
treePlotter 绘制树
机器学习matplotlib可能的绘制需要。哈哈哈哈 .... 积分太高啦
代码片段和文件信息
‘‘‘
Created on Aug 14 2017
@author: WordZzzz
‘‘‘
import matplotlib.pyplot as plt
#定义文本框和箭头格式
decisionNode = dict(boxstyle=“sawtooth“ fc=“0.8“)
leafNode = dict(boxstyle=“round4“ fc=“0.8“)
arrow_args = dict(arrowstyle=“<-“)
def getNumLeafs(myTree):
“““
Function: 获取叶节点的数目
Args: myTree:树信息
Returns: numLeafs:叶节点的数目
“““
#初始化叶节点数目
numLeafs = 0
#第一个关键字为第一次划分数据集的类别标签,附带的取值表示子节点的取值
firstStr = list(myTree.keys())[0]
#新的树,相当于脱了一层皮
secondDict = myTree[firstStr]
for key in secondDict.keys():
#判断子节点是否为字典类型
if type(secondDict[key]).__name__==‘dict‘:
#是的话表明该节点也是一个判断节点,递归调用getNumLeafs()函数
numLeafs += getNumLeafs(secondDict[key])
else:
#不是的话表明到头了,赋值累加1
numLeafs += 1
#返回叶节点数目
return numLeafs
def getTreeDepth(myTree):
“““
Function: 获取树的层数
Args: myTree:树信息
Returns: maxDepth:最大层数
“““
#初始化最大层数
maxDepth = 0
#第一个关键字为第一次划分数据集的类别标签,附带的取值表示子节点的取值
firstStr = list(myTree.keys())[0]
#新的树,相当于脱了一层皮
secondDict = myTree[firstStr]
for key in secondDict.keys():
#判断子节点是否为字典类型
if type(secondDict[key]).__name__==‘dict‘:
#是的话表明该节点也是一个判断节点,递归调用getTreeDepth()函数
thisDepth = 1 + getTreeDepth(secondDict[key])
else:
#不是的话表明到头了,此时赋值为1
thisDepth = 1
if thisDepth > maxDepth: maxDepth = thisDepth
#返回最大层数
return maxDepth
def plotNode(nodeTxt centerPt parentPt nodeType):
“““
Function: 绘制带箭头的注解
Args: nodeTxt:文本注解
centerPt:箭头终点坐标
parentPt:箭头起始坐标
nodeType:文本框类型
Returns: 无
“““
#在全局变量createPlot.ax1中绘图
createPlot.ax1.annotate(nodeTxt xy=parentPt xycoords=‘axes fraction‘
xytext=centerPt textcoords=‘axes fraction‘
va=“center“ ha=“center“ bbox=nodeType arrowprops=arrow_args )
#在全局变量createPlot0.ax1中绘图
# createPlot0.ax1.annotate(nodeTxt xy=parentPt xycoords=‘axes fraction‘
# xytext=centerPt textcoords=‘axes fraction‘
# va=“center“ ha=“center“ bbox=nodeType arrowprops=arrow_args )
def plotMidText(cntrPt parentPt txtString):
“““
Function: 在父子节点间填充文本信息
Args: cntrPt:树信息
parentPt:父节点坐标
txtString:文本注解
Returns: 无
“““
xMid = (parentPt[0]-cntrPt[0])/2.0 + cntrPt[0]
yMid = (parentPt[1]-cntrPt[1])/2.0 + cntrPt[1]
createPlot.ax1.text(xMid yMid txtString va=“center“ ha=“center“ rotation=30)
def plotTree(myTree parentPt nodeTxt):#if the first key tells you what feat was split on
“““
Function: 创建数据集和标签
Args: myTree:树信息
parentPt:箭头起始坐标
nodeTxt:文本注解
Returns: 无
“““
#计算树的宽
numLeafs = getNumLeafs(myTree) #this determines the x width of
- 上一篇:天猫评论爬虫
- 下一篇:python图像处理三维重建所有代码
相关资源
- python图像处理三维重建所有代码
- 天猫评论爬虫
- 股票爬取python
- python量化金融项目视频教程
- 基于朴素贝叶斯实现的文本分类
- 单纯形法python
- Python实现简单遗传,粒子群,蚁群,
- 在 VisualStudio 2017环境下使用Python之爬
- python实现图片拼接
- 调用python接口使用googlenet进行图像识
- 最详细神经网络python描写附注释
- Pygame——AI重力四子棋
- 基于Python的计算机网络实验设计
- 西电数据挖掘作业——k中心聚类pyt
- python实现SVM
- 老男孩python全栈开发学习笔记文字整
- python3 HTMLTestRunner截图&美化&优化
- 爬取网页视频,解析m3u8文件,获取
- dmPython.zip
- python实现的改进的遗传算法解决工件
- Python简易滚动抽奖界面程序
- 超限学习机—逻辑回归Python代码
- python3爬取中国天气网天气并写入csv
- Python2.7 贪吃蛇小游戏源码
- python实现logistics的分叉图
- 对任意关键字爬虫对应图片代码
- 图虫网爬虫python实现
- 网站图片爬取代码
- SIFT算法特征提取的python实现
- 已知两点经纬度坐标,求距离函数
评论
共有 条评论