graphviz Windows中文乱码,修改底层
网上有一些方法和步骤,但写的不够细致,用另外的方法,自己补充一次
第一步:
找到安装目录修改成:C:\Program Files\Graphviz2.38\fonts
<!-- Font directory list -->
<dir>C:\WINDOWS\Fonts</dir>
<dir>~/.fonts</dir>
第二步:代码生成dot文件的时候,指定文件的编码格式为utf-8
with open('treeone.dot', 'w',encoding="utf-8") as f:
dot_data = tree.export_graphviz(clf,feature_names=vec.get_feature_names())
f.write(dot_data)
这两步是网上所说的,我照着做一遍,但我仍然没有成功,不知道为什么。
打开dot文件,看了一下。
其实是生成的dot文件里面,仍然缺少编码格式
第三步:于是修改底层文件
1、定位dot_data = tree.export_graphviz(clf,feature_names=vec.get_feature_names())中的export_graphviz函数,并点进去。
2、搜索关键字node [shape=box,修改对照图
来一张最后的pdf效果图:
五:补充
1、export_graphviz中,参数rounded不能为true,否则会用圆角,而使用Helvetica fonts,没见过汉字有这种鬼字体。不带参数,会使用默认的Times-Roman,这个字体,一般是有的,放心使用。
2、其实dot文件的,digraph属性中,还 可以配置其它更多的参数,例如字体大小
node [shape=box, fontname="Microsoft YaHei" size="20,20"];