完美解决Python词云库wordcloud不显示中文问题
你的Python词云库wordcloud显示的都是方框吗?别担心,我有一个妙招让你的中文词云变得美观又清晰!
背景:
- wordcloud是一个基于python的词云生成库,它可以让你用简单的代码创建出各种形状和颜色的词云图像
- wordcloudgithub地址:https://github.com/amueller/word_cloud
- wordcloud\(\color{#FF3030}{默认是不支持显示中文的,中文会被显示成方框}\)
首先
安装wordcloud
pip install wordcloud
当做好数据预处理操作画词云图时
wc = WordCloud(collocations=False, width=1400, height=1400, margin=2).generate(text.lower())
当数据中有中文数据画图会出现以下情况:

这是因为使用的字体不能支持中文
解决方案
解决方法是使用一个能够支持中文的字体。wordcloud有个专门设置字体的参数:font_path : string #字体路径,需要展现什么字体就把该字体路径+后缀名写上,如:font_path = '黑体.ttf'
我们把font_path属性加上,再用纯中文的数据集测试。下面的代码是在Windows下安装的jupyterbook测试。
# 源数据太长只截取了一小段
st = 'Silent Angel期待您的光临,共赏美好的声音!Silent Angel期待您的光临,共赏美好的声音!这只HD650在1k的失真左声道是右声道的6倍左右,也超出官方规格参数范围(0.05%),看来是坏了达音科 17周年 倒是数据最好看,而且便宜bose,beats,apple的消費者根本不知道有曲線的存在不错的数据我觉得任何人都可以明确分别高端耳机之间的区别,不用出声都可以,毕竟佩戴感不一样,这还没法做到盲听听出区别是一方面,听出高低的层次要求就更高了。有没有人能从10条电源线里,听出最贵的是哪条?二级银耳朵,对号入座下一般来说所谓“发烧友”起步应该是铜耳朵这个级别,达不到的话就别在HIFI上浪费钱了,入门级产品玩玩就可以了。我觉得器材到一定级别,搭配好了,达到听出来线材区别是一件非常容易的事情。不知老大是哪个级别的自我定位一下,算个铜耳朵吧不是还要能分辩水电,火电和核电的吗。 能分辨这个的是什么耳朵看了下最多到一级银耳朵顶天了。但 mp3 和无损不一定能听出来。银耳飘过。。。'
st = jb.lcut(st)
st = '/'.join(st)
wordcloud = WordCloud(collocations=False,font_path='msyh.ttc', width=1400, height=1400, margin=2).generate(st)
# 显示图片
plt.imshow(wordcloud)
plt.axis('off')
plt.show()

使用其他中文字体
github有个Adobe开源的支持中文的字体库: https://github.com/adobe-fonts
如果想显示其他中文字体,可以去字体库中下载,font_path 属性后填为本地保存地址绝对路径即可,代码例如下:
font = r'C:\Windows\Fonts\simfang.ttf'
wc = WordCloud(collocations=False, font_path=font, width=1400, height=1400, margin=2).generate(text.lower())
完美解决Python词云库wordcloud不显示中文问题的更多相关文章
- python词云生成-wordcloud库
python词云生成-wordcloud库 全文转载于'https://www.cnblogs.com/nickchen121/p/11208274.html#autoid-0-0-0' 一.word ...
- Python的matplotlib库画图不能显示中文问题解决
有两种解决办法: 一种是在代码里设置为能显示中文的字体,如微软雅黑(msyh.ttf)和黑体(simsun.ttc) 如下在要画图的代码前添加: import matplotlib.pyplot as ...
- python 词云小demo
词云小demo jiebawordcloud 一 什么是词云? 由词汇组成类似云的彩色图形.“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过 ...
- 词云绘制wordcloud
wordcloud是优秀的第三方词云展示库,该库以空格为分割线,按照单词出现的频率自动设置字号与颜色实例如下 import wordcloud#词云库 import jieba#分词库 a=open( ...
- python词云图之WordCloud
1. 导入需要的包package import matplotlib.pyplot as plt from scipy.misc import imread from wordcloud import ...
- Python 词云 【中/英】小白简单入门教程
1. 分析 构建词云需要具备: 原料即文章等内容 将内容进行分词 将分词后的内容利用构建词云的工具进行构建 保存成图片 2. 需要的主要模块 jieba 中文分词 wordcloud 构建词云 3. ...
- python预课05 爬虫初步学习+jieba分词+词云库+哔哩哔哩弹幕爬取示例(数据分析pandas)
结巴分词 import jieba """ pip install jieba 1.精确模式 2.全模式 3.搜索引擎模式 """ txt ...
- Python 词云可视化
最近看到不少公众号都有一些词云图,于是想学习一下使用Python生成可视化的词云,上B站搜索教程的时候,发现了一位UP讲的很不错,UP也给出了GitHub上的源码,是一个很不错的教程,这篇博客主要就是 ...
- python词云的制作方法
第一次接触到词云主要是觉得很好看,就研究了一下,官方给出了代码的,但是新手看的话还是有点不容易,我们来尝试下吧. 环境:python2.7 python库:PIL(pillow),numpy,matp ...
- python 词云学习
词云入门 三步曲 数据获取:使用爬虫在相关网站上获取文本内容 数据清洗:按一定格式对文本数据进行清洗和提取(文本分类,贴标签) 数据呈现:多维度呈现和解读数据(计算,做表,画图) 一 模块的安装 pi ...
随机推荐
- Java 深度优先搜索 and 广度优先搜索的算法原理和代码展示
111. 二叉树的最小深度 题目:给定一个二叉树,找出其最小深度.最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明:叶子节点是指没有子节点的节点. 方法1:深度优先搜索 原理:深度优先搜 ...
- .NET开源简单易用、内置集成化的控制台、支持持久性存储的任务调度框架 - Hangfire
前言 定时任务调度应该是平时业务开发中比较常见的需求,比如说微信文章定时发布.定时更新某一个业务状态.定时删除一些冗余数据等等.今天给推荐一个.NET开源简单易用.内置集成化的控制台.支持持久性存储的 ...
- Spring @ConfigurationProperties Yaml语法配置List和Map:List<String>、List<Obj>、List<List<Obj>>、Map<String,String>、Map<String,List<String>>、Map<String,Obj>、Map<String,List<Obj>>
yaml语法 数据结构可以用类似大纲的缩排方式呈现,结构通过缩进来表示,连续的项目通过减号"-"来表示,map结构里面的key/value对用冒号":"来分隔. ...
- Prime Distance 区间筛
给定 l, r,求出相差最小和相差最大的在l,r范围内相邻的质数 1 < l, r < 2,147,483,647, r - l < = le6 主要思路 : 埃氏筛 因为 r的最小 ...
- 【pwn】[MoeCTF 2022]babyfmt --格式化字符串漏洞,got表劫持
拿到程序,先checksec一下 发现是Partial RELRO,got表可修改 当RELRO保护为NO RELRO的时候,init.array.fini.array.got.plt均可读可写:为P ...
- 一篇文章让你理解:什么是Spring???
背景 市场上,随便一个Java工程师的招牌要求上,都可以看到SSM.Spring.SpringMVC...类似字样.这玩意到底是个啥? 这是中邮消费招聘的岗位要求,可以看到第3点: 3.熟悉Strut ...
- 从BST到LSM的进阶之路
前言 相信大家之前都了解过很多种数据结构,我之前总是两两的,也就是从局部上去进行比较,没有从整体上进行这些树的发展脉络进行梳理,因此经常看完没多久就忘了.看来确实是需要从本源出发,不仅要知其然还要知其 ...
- 牛客小白月赛43 F 全体集合
题目链接 F 全体集合 题目大意 给出\(n\)个点\(m\)条边的无向图,给出\(k\)个点上分别有一个人,每个人一次只能走到一个相邻的节点,问有没有一种可能让这些人都走到一个点. 思路 考虑使用二 ...
- vue通过地址下载文件
通过a标签 // 创建a标签 const link = document.createElement('a') // download属性 link.setAttribute('download', ...
- Android学习day02【页面布局的练习】
在网上找了一些图片,只用最简单的颜色进行区分,目的是熟悉线性布局和相对布局 下面是我找到的简单的Android页面,你也可以尝试以下' 下面是我的实现代码 第一个