python 读中文乱码_win10的python的graphviz中文乱码问题解决

graphviz应该是基于cmd做的一款软件,所以Python与它兼容性可能会差一些,本文就详细描述具体如何使带中文的python的graphviz模块图可视化。

本文默认你已经知道如何使用python的graphviz了,不会的可以参考以下网址:

scikit-learn决策树算法类库使用小结 - 刘建平Pinard - 博客园

目前笔者主要用于决策树的可视化。

第一步:打开graphviz软件根目录,找到font或者font.conf,根据版本不同可能会有差异,我的在C:Program Files (x86)Graphviz2.38fonts里面,修改font的cachedir到自己电脑的字体文件夹,我的是C:WindowsFonts

e7cb3eee257e2ba3d1393145950c20cb.png

首先需要将graphviz.Source的源文件(在graphviz-0.14版本似乎已经没了,可以试试打开site-packages/sklearn/tree/_export.py依然存在rounded)打开(eclipse可通过ctrl+鼠标左键),找到if rounded,rounded参数主要目的是调整节点方框所带的是圆角还是直角,修改此处的fontname为中文字体名(eg.SimSun)

f1df68fc30621832d6e5c2dd566ad5d1.png

之后在调用export_graphviz时必须使rouded为True,eg.

    dot_data = StringIO()#存储字符流
    export_graphviz(myDTModel0, out_file=dot_data,
                                feature_names=wordList,#节点特征名list
                                max_depth=5,#决策树展示深度
                                class_names=list(set(trainY0.tolist()+testY0.tolist())),#类别名list
                                filled=True,
                                rounded=True)####***重要***
    graph=pydotplus.graph_from_dot_data(dot_data.getvalue())
    graph.write_pdf("figures/model0.pdf")

结果如下:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值