python词云模糊_用Python和WordCloud绘制词云(内附让字体清晰的秘笈)

环境及模块:

Win7 64位

Python 3.6.4

WordCloud 1.5.0

Pillow 5.0.0

Jieba 0.39

目标:

绘制安徽省2018年某些科技项目的词云,直观展示热点。

思路:

先提取项目的名称,再用Jieba分词后提取词汇;过滤掉“研发”、“系列”等无意义的词;最后用WordCloud 绘制词云。

扩展:

词云默认是矩形的,本代码采用图片作为蒙版,产生异形词云图。这里用的图片是安徽省地图。

秘笈:

用网上的常规方法绘制的词云,字体有点模糊,秘笈在最后点明。

正式开始,Show you the code:

1 importnumpy as np2 from PIL importImage3 importre4 importjieba5 from wordcloud importWordCloud,ImageColorGenerator,STOPWORDS6 importmatplotlib.pyplot as plt7 # http://www.cnblogs.com/hatemath/

8 #打开存放项目名称的txt文件

9 with open(‘content.txt‘,‘r‘,encoding=‘utf-8‘) as f:10 word=(f.read())11 f.close()12

13 #图片模板和字体

14 image=np.array(Image.open(‘ditu.jpg‘))15 font=r‘C:\\Windows\\fonts\\msyh.ttf‘

16

17 #去掉英文,保留中文

18 resultword=re.sub("[A-Za-z0-9\[\`\~\!\@\#\$\^\&\*\(\)\=\|\{\}\‘\:\;\‘\,\[\]\.\\/\?\~\。\@\#\\\&\*\%]", "",word)19 wordlist_after_jieba =jieba.cut(resultword)20 wl_space_split = " ".join(wordlist_after_jieba)21

22 #设置停用词

23 sw =set(STOPWORDS)24 sw.add("研发")25 sw.add("系列")26 sw.add("这里不多写了,根据自己情况添加")27

28 #关键一步

29 my_wordcloud = WordCloud(scale=4,font_path=font,mask=image,stopwords=sw,background_color=‘white‘,30 max_words = 100,max_font_size = 60,random_state=20).generate(wl_space_split)31

32 #显示生成的词云

33 plt.imshow(my_wordcloud)34 plt.axis("off")35 plt.show()36

37 #保存生成的图片

38 my_wordcloud.to_file(‘result.jpg‘)

其中 ditu.jpg 为安徽省轮廓图片:

81246ee60c188d803480a9b0bb831760.png

运行结果:

a4b5caa80ba6837e59a57c40fa0e0a94.png

可以看到,智能设备、施工工法、系统平台、电缆、机器人等都是出现较多的词汇。

最后是秘笈揭晓时间:

为什么我这张图如此清晰?打开原图可以看到,这图的分辨率是1800*2500。你用网上的大多数代码,最后生成的图,尺寸很小,上面字迹边缘模糊。

关键在于调用WordCloud时的一个参数,回放一下代码:

1 #关键一步

2 my_wordcloud = WordCloud(scale=4,font_path=font,mask=image,stopwords=sw,background_color=‘white‘,3 max_words = 100,max_font_size = 60,random_state=20).generate(wl_space_split)

第一个参数我写的是 scale=4,这个数值越大,产生的图片分辨率越高,字迹越清晰。你可以调到64试试,我希望你的电脑足够快 /笑哭

本文由hATEmATH原创 转载请注明出处:http://www.cnblogs.com/hatemath/

原文:https://www.cnblogs.com/hatemath/p/10238145.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/557624.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

shiro框架,自定义realm注入service失败解决办法

shiro框架,自定义realm注入service失败解决办法 报错如下: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘shiroFilter’ defined in ServletContext resource [/WEB-INF/config/spring-shrio.xml]: Cannot resolve reference …

MySQL建立多选一列表_如何实现自定义列表的多个item,的单选或多选

展开全部自定义ListView item中包含一个e69da5e6ba903231313335323631343130323136353331333337376333textview 和checkbox,checkbox选中级别高于item,故在xml中进行屏蔽单选方法:(该方法同样适用于radiobutton)main.xmlandroid:layout_width"match_parent"android:l…

spring的bean不能注入的几种原因及分析

1、异常信息 2.有可能引起的原因: 1、在applicationContext.xml的配置文件里的包扫描不对。 2、在web.xml里没有加载spring容器。 3、分布式工程,使用dubbo或者hsf通信,在服务层,或者消费层,单词写错了。 4、还有一种可能&am…

linux 备份mysql并上传_Linux 网站目录和MySQL备份并上传FTP

#!/bin/bashMYSQL_USERrootMYSQL_PASSFTP_USERFTP_PASSFTP_IPFTP_backupbackupWEB_DATA/home/wwwrootDataBakNameData_$(date ”%Y%m%d”).tar.gzWebBakNameWeb_$(date ”%Y%m%d”).tar.gzOldDataData_$(date -d -3day ”%Y%m%d”).tar.gzOldWebWeb_$(date -d -3day ”%Y%m%d”…

python后端需要什么基础_【后端开发】python爬虫需要什么基础

入手爬虫确实不要求你精通Python编程,但基础知识还是不能忽视的,那么我们需要哪些Python基础呢?首先我们先来看看一个最简单的爬虫流程:第一步要确定爬取页面的链接,由于我们通常爬取的内容不止一页,所以要…

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyR

异常信息: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2 at org.mybatis.spring.MyBatisExceptionTransl…

java 两个字段排序_如何在Java中按两个字段排序?

使用Java 8流方法.。//Creates and sorts a stream (does not sort the original list)persons.stream().sorted(Comparator.comparing(Person::getName).thenComparing(Person::getAge));Java 8 Lambda方法.。//Sorts the original list Lambda stylepersons.sort((p1, p2) -&…

spring的动态代理,碰到了一个类型转换的问题:java.lang.ClassCastException: com.sun.proxy.$Proxy16 cannot be cast to com.

spring的动态代理,碰到了一个类型转换的问题: java.lang.ClassCastException: com.sun.proxy.$Proxy16 cannot be cast to com.Charon.service.UserServiceImpl 首先介绍一下spring的动态代理。 spring使用的动态代理有两种:JDK Proxy 和CGL…

java xms512m_安装版的tomcat设置JAVA_OPTS=-Xms128M -Xmx512M -XX:PermSize=128M -XX:MaxPermSize=512M...

tomcat如果是通过windows服务启动,执行的是bin\tomcat.exe.他读取注册表中的值,而不是catalina.bat的设置.解决办法:修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\JavaOptions原值为-Dcatalina.homeE:\Tomcat…

关于Typora编辑器编写markdown文档时插入出现前字吞后字的解决方法

关于Typora编辑器编写markdown文档时插入出现前字吞后字的解决方法 原因是按到了键盘上的Insert键,使得编辑模式变为了改写,所以会把文本替换掉,这个按键没有状态标示。

异常信息java.lang.Object.wait(Native Method) java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:

在写springboot项目时出现了一个这样的错误!! ava.lang.Object.wait(Native Method) java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143) com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:43) …

java http url 编码_Java中的HTTP URL地址编码

java.net.URI类可以帮助;在URL的文档中找到Note, the URI class does perform escaping of its component fields in certain circumstances. The recommended way to manage the encoding and decoding of URLs is to use an URI使用带有多个参数的构造函数,如&…

Error querying database. Cause: java.lang.UnsupportedOperationException

mybatis抛出以下异常: Error querying database. Cause: java.lang.UnsupportedOperationException 对应语句如下: select distinct code from ssj_dictionary 错误原因是 resultType“java.util.List” ,这里应该改成: result…

从java多态到策略模式_设计模式中的多态——策略模式详解

2. 策略模式详解2.1 策略模式定义策略模式定义了一系列算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户端而独立的变化。可以使用多态进行类比来理解策略模式的定义。一系列算法可以理解成接口的不同实现类,因为不同实现类…

linux服务器安装zookeeper本地项目远程连接

linux服务器安装zookeeper本地项目远程连接 zookeeper linux 服务器安装,本地idea连接 先决条件:一台linux服务器,服务器里面已经安装好java环境(安装Java看这里:https://blog.csdn.net/qq_43842093/article/details…

android 获取蓝牙设备id_【报Bug】安卓平台获取不到蓝牙设备服务列表(ios可以)...

产品分类:uniapp/AppPC开发环境操作系统:WindowsPC开发环境操作系统版本号:win10HBuilderX类型:正式HBuilderX版本号:3.0.7手机系统:Android手机系统版本号:Android 9.0手机厂商:华为…

java gson 工具类_GSON 实体 转换工具类

/*** Gson转换工具类*/public class GsonUtils {/*** param jsonString* json字符串* param cls* 要转换的类* param * 返回要转换的类* return*/public static T getPerson(String jsonString, Class cls) {T t null;try {Gson gson new G…

修改linux远程主机名命令hostname

hostname命令 用这个命令:之后重新登录

java string字符操作_Java对String类型字符串的各种操作姿势

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼//获取字符串的长度String str2 "helloword";System.out.println(str2.length());//利用数组创建string对象char[] cha {h,e,l,l,o,w,o,r,d,!};String str new String(cha);System.out.println(str);//利用数组创建st…

zookeeper下载安装过程

1.1 下载安装 1、环境准备 ZooKeeper服务器是用Java创建的,它运行在JVM之上。需要安装JDK 7或更高版本。 2、上传 将下载的ZooKeeper放到/opt/ZooKeeper目录下 #上传zookeeper altp put f:/setup/apache-zookeeper-3.5.6-bin.tar.gz #打开 opt目录 cd /opt #创…