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"];