import matplotlib.pyplot as plt
#定义文本框和箭头模式,dict和字典是一样的
# 定义决策树决策结果的属性,用字典来定义
# 下面的字典定义也可写作 decisionNode={boxstyle:'sawtooth',fc:'0.8'}
# boxstyle为文本框的类型,sawtooth是锯齿形,fc是边框线粗细
decisionNode = dict(boxstyle="sawtooth", fc="0.8")
leafNode = dict(boxstyle="round4", fc="0.8")
arrow_args = dict(arrowstyle="<-")
#绘制带箭头的注解
def plotNode(nodeTxt, centerPt, parentPt, nodeType):
'''
Function: 绘制带箭头的注解
Args: nodeTxt:文本注解
centerPt:箭头终点坐标
parentPt:箭头起始坐标
nodeType:文本框类型
annotate是关于一个数据点的文本
'''
#在全局变量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)
def createPlot():
#创建一个新图形
fig = plt.figure(1, facecolor='white')
#清空绘图区
fig.clf()
#给全局变量createPlot.ax1赋值,subplot为定义了一个绘图
#111表示figure中的图有1行1列,即1个,最后的1代表第一个图
#frameon表示是否绘制坐标轴矩形
createPlot.ax1 = plt.subplot(111, frameon=False)
#绘制第一个文本注解
plotNode('决策节点', (0.5, 0.1), (0.1, 0.5), decisionNode)
#绘制第二个文本注解
plotNode('叶节点', (0.8, 0.1), (0.3, 0.8), leafNode)
#显示最终绘制结果
plt.show()
Matplotlib注解
最新推荐文章于 2024-06-25 10:24:41 发布