首页 > 编程语言 >完美解决Python词云库wordcloud不显示中文问题

完美解决Python词云库wordcloud不显示中文问题

时间:2023-09-08 22:11:46浏览次数:68  
标签:中文 1400 Python 词云库 st wordcloud path font

你的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())

标签:中文,1400,Python,词云库,st,wordcloud,path,font
From: https://www.cnblogs.com/oten/p/17687123.html

相关文章

  • 用现代C++写一个python的简易型list
    std::variant介绍:en.cppreference.com/w/cpp/utility/variant  通过泛型模板(仅提供了int,double,string三种类型的存储),实现了append,pop,front,back,size等方法,并且通过重载运算符实现了对负数索引的访问。#include<iostream>#include<vector>#include<variant>......
  • appium+python安装配置及代码测试完整流程
    1.appium安装及环境配置2.模拟器安装或者直接连接真机也可以3.手机各配置参数获取platformName'、'platformVersion'、appActivity、deviceName、webdriver.Remote 4.代码运行测试,启动手机应用5.进阶版,代码为POM模式......
  • Python初步了解装饰器
    Python初步了解装饰器装饰器的概念装饰器的简单使用装饰器的进阶装饰器的练习装饰器的固定模块装饰器的语法糖装饰器的概念装饰器它不是一个新的知识点,它是有之前我们学习的名称空间、函数嵌套、闭包函数等知识点汇总而来器:工具装饰:为其他事物添加功能装饰器:不修该装......
  • Alembic:Python数据库迁移工具
    Alembic是一款轻量型的数据库迁移工具,它与SQLAlchemy一起共同为Python提供数据库管理与迁移支持。Alembic的应用Alembic使用SQLAlchemy作为数据库引擎,为关系型数据提供创建、管理、更改和调用的管理脚本,协助开发和运维人员在系统上线后对数据库进行在线管理。同任何P......
  • appium+python安装后代码测试
     fromappiumimportwebdriver#模拟器/真机已经被电脑识别到(adbdevices)#字典#1、设置终端参数项desired_caps={"platformName":"Android","platformVersion":"6.1.1","appPackage":"com.ss.android.article.n......
  • python3之os库和pathlib库
    #os标准库importos#当前Python运行所在的环境posix,nt,javaprint(os.name)#nt#os.getcwd()获取当前工作路径print(os.getcwd())dir="./files/foo/bar/bar2"file=os.path.join(dir,"c.txt")#os.path.join()可以将多个传入路径组合为一个路径print(file)......
  • python3类实例和错误处理
    类实例classCar(object):name="Car"def__init__(self,name):self.name=name#类方法通过@classmethod装饰器实现,只能访问类变量,不能访问实例变量;通过cls参数传递当前类对象,不需要实例化。@classmethoddefrun(cls,speed):......
  • python 格式输出
    格式化输出目录格式化输出1使用"%"1.1格式符1.2字符串输出(%s)1.3浮点数输出(%f)2使用format2.1位置匹配2.2格式转换2.3高阶用法python格式有两种方法:"%"和format1使用"%"1.1格式符格式符描述%s字符串(采用str()的显示)%r字符串(采用repr()的显示......
  • python写的文件比对脚本:
    上代码:#-*-coding:utf-8-*-importdifflib,webbrowserimportosimporttkinterastkfromtkinterimportfiledialog,messageboxdefreadfile(filename):try:withopen(filename,'r+',encoding='utf-8')asf:text=f.read().splitlines......
  • python内置定时任务
    目录python内置定时任务whileTrue+sleepTimeloopTimerschedpython内置定时任务whileTrue+sleepimportdatetimedeftask_run(*args,**kwargs):print(f"耗时操作....{datetime.datetime.now().strftime('%Y%m%d_%H:%M:%S')}")defcron_and_sleep():......