python graphviz中文乱码_graphviz画决策树图中文乱码问题解决

1、修改graphviz配置文件

C:\Program Files\Graphviz2.38\fonts

更改为

2、将决策树dot_data文件保存下来

def save_dot_data(model):

from sklearn import tree

dot_data = tree.export_graphviz(model, out_file=None,

feature_names=X_train.columns,

class_names=['+','-'],

filled=True, rounded=True)

with open('./output/dot_data.txt', 'w') as f:

f.writelines(dot_data)

save_dot_data(dtc)

3、dot_data文件格式转换

编码转换成utf-8编码,用python或其他工具转换,windows上txt转换会报错

尽量去除label_name上的空格

fontname使用"Microsoft YaHei"等支持中文的字体

用python将txt转成utf8形式代码:

import codecs

txt_dir = r'D:\PythonProject\dot_data.txt'

txt_dir_utf8 = r'D:\PythonProject\dot_data_utf8.txt'

with codecs.open(txt_dir, 'r') as f, codecs.open(txt_dir_utf8, 'w', encoding='utf-8') as wf:

for line in f:

lines = line.strip().split('\t')

print(lines)

if 'label' in lines[0]:

newline = lines[0].replace('\n', '').replace(' ', '')

else:

newline = lines[0].replace('\n','').replace('SimSun-ExtB', 'Microsoft YaHei')

wf.write(newline + '\t')

4、最后在操作命令窗口用graphviz画决策树图命令如下:

dot -Tpng dot_data_utf8.txt -o example.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值