解决问题

  • 问题信息
  • 问题代码
  • 问题分析
  • 解决问题
    • 注意

问题信息

•我们在pycharm中使用graphviz绘制决策树时,可能会出现下述图片中中文字体乱码的问题:

       •参考网上修改各种配置文件的方法,一般是不能解决问题的!,此博客介绍一种不修改配置文件的方法解决此问题!!

问题代码

import graphviz
from sklearn import tree
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_splitwine = load_wine()Xtrain, Xtest, Ytrain, Ytest = train_test_split(wine.data, wine.target, test_size=0.3)clf = tree.DecisionTreeClassifier(criterion='entropy',random_state=30,splitter='random')
# random_state随机模式可输入任意数字,
cl = clf.fit(Xtrain, Ytrain)
score = clf.score(Xtest, Ytest)
print(score)feature_name = ['酒精', '苹果酸', '灰', '灰的碱性', '镁', '总酚', '类黄酮', '非黄烷类酚类', '花青素', '颜色强度', '色调', 'od280/od315稀释葡萄酒','脯氨酸']  # 特征值
dot_data = tree.export_graphviz(clf,feature_names=feature_name,class_names=['琴酒', '雪梨', '贝尔摩德'],filled=True,  # 是否填充颜色,true 填充颜色rounded=True,  # 框的形状
)
graph = graphviz.Source(dot_data)  # 此行代码出现问题!!!
graph.render('wine_tree')

•当你使用上述代码绘制决策树时,就会出现图片中中文字体乱码的情况!!

问题分析

•出现问题的代码行!!!

graph = graphviz.Source(dot_data)

•在不修改dot_data字体配置时,绘制图像的字体为:fontname = helvetica,此字体为西文字体,不支持中文字体,当我们直接使用而不修改字体配置时,就会出现图片中中文字体乱码的情况!!!

解决问题

•出现上述问题时,只需增加中文字体的配置即可解决中文乱码问题!!

graph = graphviz.Source(dot_data.replace('helvetica', '"Microsoft YaHei"'), encoding='utf-8')

•将上述问题代码行修改为此代码行即可解决!!!

注意

’“Microsoft YaHei”’ 这里是单引号里面套着双引号,不能出现书写错误!!!
       •完整正确代码:

import graphviz
from sklearn import tree
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_splitwine = load_wine()Xtrain, Xtest, Ytrain, Ytest = train_test_split(wine.data, wine.target, test_size=0.3)clf = tree.DecisionTreeClassifier(criterion='entropy',random_state=30,splitter='random')
# random_state随机模式可输入任意数字,
cl = clf.fit(Xtrain, Ytrain)
score = clf.score(Xtest, Ytest)
print(score)feature_name = ['酒精', '苹果酸', '灰', '灰的碱性', '镁', '总酚', '类黄酮', '非黄烷类酚类', '花青素', '颜色强度', '色调', 'od280/od315稀释葡萄酒','脯氨酸']  # 特征值
dot_data = tree.export_graphviz(clf,feature_names=feature_name,class_names=['琴酒', '雪梨', '贝尔摩德'],filled=True,  # 是否填充颜色,true 填充颜色rounded=True,  # 框的形状
)
graph = graphviz.Source(dot_data.replace('helvetica', '"Microsoft YaHei"'), encoding='utf-8')
graph.render('wine_tree')

•解决问题后图片显示:

解决问题,在pycharm中使用graphviz绘制决策树时,决策树图片中不显示中文(中文字体乱码!!) 图文并茂版!!!相关推荐

  1. 解决问题:pycharm中SSH报错failed:<br/>Authentication failure

    Pycharm使用SSH远程连接服务器报错如下: 解决方法 先在工具-部署中配置一下服务器信息,再在设置的解释器中就能直接找到了,不会再出现连接失败的问题,步骤如下:

  2. 在pycharm中使用Echarts绘制单个省份的地图(以内蒙古自治区为例)

    今天来复盘一下,如何使用Echarts绘制单个省份的地图,昨天在网上搜了很多教程,代码大差不差,但是运行的时候总出不来,经过自己的琢磨,里面也有很多需要注意的点,今天就以自身的问题来针对几个问题说一下 ...

  3. 在pycharm中直接安装第三方包时出错提示无合适版本---解决方案

    错误提示举例 2.找到manage repositories,并添加国内源 进入setting->Project ->Python interpreterh 后点击 + 号图标,如图 然后 ...

  4. Pycharm 中选择conda创建的虚拟环境,但是不显示包显示的解决方法

    选择自己的虚拟环境后,点击下图所示:

  5. 解决Pycharm中下载不了sklearn问题

    下载过程 当你使用Pycharm下载sklearn时,会出现下载失败的问题,本人一开始以为是镜像源的问题:更换了清华的镜像源进行下载,还是出现下载失败的问题.如果你通过下划红色下载也是会出现失败的问题 ...

  6. pycharm 中 pydev debugger: CRITICAL WARNING: This version of python seems to be incorrectly compiled

    这里写自定义目录标题 一.在pycharm中,用python3.11时,在Debug调试时出现 pydev debugger: CRITICAL WARNING: 报错 二.调试中出现中文乱码 一.在 ...

  7. Python中pip,pip3,虚拟环境(venv)三者的关系,如何在pycharm中使用虚拟环境,以及安装依赖包所遇到的问题。

    目录 一.是什么是pip,pip3,与虚拟环境(venv) 二.三者之间的联系 三.在pycharm中设置虚拟环境 四.安装python依赖包的快捷方式 五.注意事项 六.感谢观看!!!点个赞或者关注 ...

  8. Python数据可视化之绘制带有最佳拟合线的散点图(图文并茂版!!!)

    绘制带有最佳拟合线的散点图 最佳拟合线 数据准备 数据展示 图例选择 根据图例筛选数据 绘制图像 最佳拟合线 •当我们想要研究数据集中两个变量之间如何相互改变,使用最佳拟合线就是一个不错的方法!!   ...

  9. intellij html 插件,解决intellij idea中使用live edit插件不能在chrome即时显示css变化的方法(html可以)...

    问题源于一次chrome内核的更新 详细请看 就是说chrome在14年一月的时候更新了一次内核,removes getAllStylesheets method from protocol这是原话, ...

最新文章

  1. css 网格布局_我从CSS网格布局中学到的东西
  2. 从R-CNN到YOLO,2020 图像目标检测算法综述
  3. SDRAM芯片初始化、行有效、列读写时序(高手进阶,终极内存技术指南——完整/进阶版) ——本文为转载...
  4. Ansible roles角色实战案例:httpd nginx memcached mysql
  5. 一个泛型冒泡排序的实现
  6. jQuery如何选择表格每行中的第三列?
  7. java多条件组合查询6_elasticsearch组合多条件查询实现restful api以及java代码实现
  8. mybatis是什么_深入解析:Mybatis接口没有实现类为什么可以执行增删改查?
  9. ueditor1_4_3-utf8-jsp 配置实现上传图片的功能
  10. Win2003打不开https的问题
  11. CountDownLatch和Semaphore使用场景
  12. iOS中Lua脚本应用笔记一:脚本概念相关
  13. ActiveMQ(一)——JMS、应用场景、关键对象、demo
  14. qt linux编程思路,关于QT编程入门的那些事
  15. VBA实现Excel模块筛选高级应用场景!
  16. jsp:使用request为页面添加静态数据。
  17. 筑基九层 —— 指针详解
  18. 陈艾盐:《春燕》百集访谈节目第三十九集
  19. Nim 博弈游戏详解
  20. nodejs+libreoffice 将word转成pdf

热门文章

  1. C++智能指针:更简单、更高效的内存管理方法
  2. 计算机辅助制造技术基础,数控技术基础-计算机辅助制造技术首页.ppt
  3. web前端必学功法之一:省市联动
  4. Android基本控件之GridView
  5. OpenDDS中IDL文件的处理命令的使用
  6. 怎么查看自己家的无线WIFI有没有被别人蹭网?
  7. 5min搭建SSM项目
  8. 看看别人后端API接口性能优化的11个方法,那叫一个优雅!
  9. AspNet控件开发(1)---入门介绍
  10. Node服务器 - koa框架