首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

决策树绘制函数介绍

1

基本思想

第二期推文中我们巳经介绍了如何从数据集中创建树,我们是用字典类型来存储决策树的,然而字典的表示形式非常不易于理解,决策树的主要优点就是直观易于理解,如果不能将其直观地显示出来,就无法发挥其优势。鉴于Python 并没有提供绘制树的工具,本期我们将介绍使用Matplotlib库来创建树形图。Matplotlib库是Python优秀的数据可视化第三方库,下面我们通过具体的算法实现来感受Matplotlib库的绘图魅力。

2

算法实现

1.获取决策树的叶节点数和树的层数

为保证绘制的决策树具有美观的比例和位置,我们必须要知道叶节点数和树的层数,以便正确确定x轴与y轴的长度。

【求叶子节点数】

【求树的层数】

【打印结果】

运行结果(python3):

2.图示决策树

函数说明 —— annotate

可以在数据图形上添加文本注释,内嵌支持带箭头的划线工具,使得可以在其他恰当的地方指向待注释内容。

annotate参数说明:

①xy箭头尖端坐标,即待注释的位置坐标

②xytext注释位置的坐标

③xycoords被注释点的坐标系属性,参数如下

figure points—— 以绘图区左下角为参考,单位是点数

figure pixels—— 以绘图区左下角为参考,单位是像素数

figure fraction—— 以绘图区左下角为参考,单位是百分比

axes points —— 以子绘图区左下角为参考,单位是点数(一个figure可以有多个axex,默认为1个)

axes pixels—— 以子绘图区左下角为参考,单位是像素数

axes fraction ——以子绘图区左下角为参考,单位是百分比

data ——以被注释的坐标点xy为参考 (默认值)

polar——不使用本地数据坐标系,使用极坐标系

④extcoords注释文本的坐标系属性,默认与xycoords属性值相同,也可设为不同的值。除了允许输入xycoords的属性值,还允许输入以下两种:

offset points 相对于被注释点xy的偏移量(单位是点)

offset pixels 相对于被注释点xy的偏移量(单位是像素)

⑤arrowprops 箭头参数,参数类型为字典dict

width ——点箭头的宽度

headwidth——箭头底座的宽度

headlength—— 点箭头的长度

shrink——箭头总长度从两端收缩的百分比

facecolor ——箭头颜色

⑥bbox给标题增加外框 ,常用参数如下:

boxstyle方框外形

facecolor(简写fc)背景颜色

edgecolor(简写ec)边框线条颜色

edgewidth边框线条大小

函数说明 —— text

text语法: text(x,y,string,fontsize=15,verticalalignment="top",horizontalalignment="right")

①x,y:表示坐标点

②string:表示注释文字

③fontsize:表示字体大小

④verticalalignment:垂直对齐方式

参数:[ ‘center’ | ‘top’ | ‘bottom’ | ‘baseline’ ]

⑤horizontalalignment:水平对齐方式

参数:[ ‘center’ | ‘right’ | ‘left’ ]

⑥bbox给标题增加外框 ,常用参数如下:

boxstyle方框外形

facecolor(简写fc)背景颜色

edgecolor(简写ec)边框线条颜色

edgewidth边框线条大小

函数说明 —— plot

plot语法:

plot(x, y, color='green', marker='o', linestyle='dashed',linewidth=2, markersize=12)

① color:绘图颜色

② marker:绘图符号

③ linestyle:线型

④ linewidth:线宽

⑤ markersize:绘图符号大小

函数说明 —— subplot

用参数设置分区模式和当前子图,只有当前子图受到命令的影响。函数的参数有三个整数组成:第一个数字决定图形沿垂直方向被分为几部分,第二个数字决定图形沿水平方向被分为几部分,第三个数字设定可以直接用命令控制的子图.

责编 | 栾 申

指导 | 老薛

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181223G0WKLE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券