原标题:word_cloud-用Python之作个性化词云图

欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习、问答、求职,一站式搞定!

对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。

网上有很多制作词云的网站,我们使用Python也可以很方便的制作,这里,我们就简单学习下。 1. word_cloud

GitHub地址:https://github.com/amueller/word_cloud

首先我们需要安装,正常来说,直接就执行 pip install wordcloud

即可,但是,我这个是在Windows平台,安装的时候,提示什么少了,需要去下载个编译器的,报错信息后面有URL,

这里忘记记下来了,遇到的同学,直接去下载下应该就行了 error: Microsoft Visual C++ 14.0is required

这里,我从网上找了另一个方法解决

去这个网站:http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud

找到指定的版本下载就行了

这里,我就下载了这个cp36的,然后直接安装就行了 pipinstallwordcloud-1.3.2-cp36-cp36m-win_amd64.whl

官网上有个小栗子,我们可以测试下,代码和使用到的数据,github上都有

from os

import path

from wordcloud

import WordCloud d = path.dirname(__file__)

# Read the whole text. text = open(path.join(d,

'constitution.txt')).read()

# Generate a word cloud image wordcloud = WordCloud().generate(text)

# Display the generated image:

# the matplotlib way:

import matplotlib.pyplot

as plt plt.imshow(wordcloud, interpolation=

'bilinear') plt.axis(

"off")

# lower max_font_size wordcloud = WordCloud(max_font_size=

40).generate(text) plt.figure() plt.imshow(wordcloud, interpolation=

"bilinear") plt.axis(

"off") plt.show()

# The pil way (if you don't have matplotlib)

# image = wordcloud.to_image()

# image.show()

我们通过wordcloud生成了一个图片,然后使用matplotlib将图片展示出来,我们分析下上面的代码 matplotlib.pyplot.imshow(X, cmap=

None, norm=

None, aspect=

None, interpolation=

None, alpha=

None, vmin=

None, vmax=

None, origin=

None, extent=

None, shape=

None, filternorm=

1, filterrad=

4.0, imlim=

None, resample=

None, url=

None, hold=

None, data=

None, **kwargs) Display an image on the axes. class wordcloud.WordCloud(font_path=None, width=400, height=200, margin=2, ranks_only=None, prefer_horizontal=0.9, mask=None, scale=1, color_func=None, max_words=200, min_font_size=4, stopwords=None, random_state=None, background_color='black', max_font_size=None, font_step=1, mode='RGB', relative_scaling=0.5, regexp=None, collocations=True, colormap=None, normalize_plurals=True)

这里有很多例子:https://amueller.github.io/word_cloud/auto_examples/index.html 2. 中文词云

上面,我们试试中文,我们换一个中文的文件试试即可 东方网记者王佳妮8月19日报道:8月18日晚,一则重磅消息在沪发布:即日起,上海暂停新增投放共享单车。上海市交通委表示,将采取有效措施,逐步解决共享单车快速发展带来的无序和不平衡问题,促进共享单车行业的持续健康发展。东方网记者从各平台获悉,将积极配合,同时考虑将中心城区部分车辆向郊区转移。

执行后,发现,中文都是乱码

我们观察上面wordcloud类,他有一个参数 font_path : string Font path to the font that will be used (OTF

or TTF). Defaults to DroidSansMono path

on a Linux machine. If you are

on another OS

or don’t have

this font, you need to adjust

this path.

这个可以指定为中文字体, font =

r'C:\Windows\Fonts\simsun.ttc'

# Generate a word cloud image wordcloud = WordCloud(font_path=font).generate(text)

再次执行,中文可以正常显示了

但是,显示的并不是我们想要的,

正常词云的话,显示的是关键词,和他的出现频率有关,这里的话,并没有对文本内容做很好的分词

刚刚去简单整理了一个Python的分词:Python中文分词-jieba

这样,我们继续修改下上面的代码

from os

import path

from wordcloud

import WordCloud

import jieba d = path.dirname(__file__)

# Read the whole text. text = open(path.join(d,

'hello.txt'),encoding=

'utf-8').read() text_cut = jieba.cut(text , cut_all=

False) font =

r'C:\Windows\Fonts\simsun.ttc'

# Generate a word cloud image wordcloud = WordCloud(font_path=font).generate(

' '.join(text_cut))

# Display the generated image:

# the matplotlib way:

import matplotlib.pyplot

as plt plt.imshow(wordcloud, interpolation=

'bilinear') plt.axis(

"off")

再次执行下

好嘞,这下差不多了,我们的中文词云图就搞好了 3. 自定义形状的词云图

下面,我们看看自定义形状的词云图,这里用官方的例子,就是需要多传入一个mask图片就行了

# -*- coding: utf-8 -*-

"""Created on Sun Aug 20 14:04:48 2017@author: yuguiyang"""

from os

import path

from PIL

import Image

import numpy

as np

import matplotlib.pyplot

as plt

from wordcloud

import WordCloud, STOPWORDS d = path.dirname(__file__)

# Read the whole text. text = open(path.join(d,

'alice.txt'),encoding=

'utf-8').read()

# read the mask image

# taken from

# http://www.stencilry.org/stencils/movies/alice%20in%20wonderland/255fk.jpg alice_mask = np.array(Image.open(path.join(d,

"alice_mask.png"))) stopwords = set(STOPWORDS) stopwords.add(

"said") wc = WordCloud(background_color=

"white", max_words=

8000, mask=alice_mask, stopwords=stopwords)

# generate word cloud wc.generate(text)

# store to file wc.to_file(path.join(d,

"alice.png"))

# show plt.imshow(wc, interpolation=

'bilinear') plt.axis(

"off") plt.figure() plt.imshow(alice_mask, cmap=plt.cm.gray, interpolation=

'bilinear') plt.axis(

"off") plt.show()

刚试了下,就是要找一个喜欢的图形图片,

天善学院svip包含Excel BI、Python爬虫案例、Python机器学习、Python数据科学家、大数据、数据分析报告、数据分析师体系、深度学习、R语言案例10套课程火爆报名中,欢迎大家关注 www.hellobi.com/svip

转载请保留以下内容:

本文来源自天善社区liutangwow老师的博客(公众号)。

原文链接:https://ask.hellobi.com/blog/yuguiyang1990/9445返回搜狐,查看更多

责任编辑:

python 可以用excel做词云图嘛_word_cloud-用Python之作个性化词云图相关推荐

  1. python 可以用excel做词云图嘛_今天从零教你开始利用Python打造词云图!

    1. 量身打造属于你的词云图 今天的Python案例是跟着笔者来打造属于自己的词云图.那么什么是词云图呢?我们在百度中来搜索一下,如图所示: 概念:词云图就是由词汇组成类似云的彩色图形.接下来我们就可 ...

  2. Python办公自动化之Excel做表自动化

    0 Python Excel库对比 我们先来看一下python中能操作Excel的库对比(一共九个库): 1 Python xlrd 读取 操作Excel 1.1 xlrd模块介绍 (1)什么是xlr ...

  3. python相比于excel的优势_都在讨论Python能否取代Excel,那有没有人想到它

    最近看到一个话题,有人问Python到底能不能取代Excel,但是我觉得抛开使用场景的比较都是耍流氓,Photoshop是否有朝一日取代美图秀秀呢?手机是否有朝一日取代台式机?微信是否有朝一日取代电话 ...

  4. python学会了能做什么-学会Python后都能做什么?介绍五种Python的实用场景

    如今,越来越多的人加入到学习Python的队伍当中. 有的学习者是设计师,学习Python可以帮助他们查找更多的海报案例;有的学习者是大学生,学习Python可以帮助他们更好地查阅论文资料;还有的学习 ...

  5. 学python可以做什么-学会Python后都能做什么?介绍五种Python的实用场景

    如今,越来越多的人加入到学习Python的队伍当中. 有的学习者是设计师,学习Python可以帮助他们查找更多的海报案例;有的学习者是大学生,学习Python可以帮助他们更好地查阅论文资料;还有的学习 ...

  6. Python办公自动化之Excel做表自动化:全网最全,看这一篇就够了!

    文章目录 修订历史 0.Python Excel库对比 1 Python xlrd 读取 操作Excel 1.1 xlrd模块介绍 1.2 安装xlrd模块 1.3 使用介绍 1.4 实战训练 2 P ...

  7. python自动化办公能做什么-新课介绍 | 用Python自动办公,做职场高手

    有一次廷聿给我看了他做的写字机器人,当时我就震惊了-- 类似这样懒到家的黑科技操作还有:每天早上8点-8点零5分之间随机自动打卡.自动发日报周报.邮件自动回复等等. 他把这些美名其曰「办公自动化」,并 ...

  8. python能用来做什么有意思的事情-用 Python 自动化办公能做到哪些有趣或有用的事情?...

    首先,很感谢党,感谢政府,感谢麻瓜编程,能在有幸之年认识一帮让我膜拜的大佬(咳咳,有点跑题)................... 学习初衷:作为一名财务打杂工,对财务岗位大多数繁冗低效无意义的工作深 ...

  9. 金融python培训班_2019年做金融,一定要学Python!:附Python视频教程

    --"XX,给我跟踪下XX行业的重要指标并写份报告分析一下." --"今天早上做出来!" --"XX,给我做个基金排名,分析下收益率,算下回撤,包含近 ...

最新文章

  1. esp32摄像显示时间_TinyPICO-比拇指还小的ESP32开发板- 国外创客众筹发现第二期
  2. java 操作 ldap_JAVA操作LDAP总结
  3. kaidi中 install cuda
  4. boost::math模块计算二项式随机变量的概率和分位数的简单示例
  5. 如何防止通过url攻击_什么是XSS攻击?如何防御XSS攻击?
  6. UVA 839 Not so Mobile
  7. 修改IntelliJ IDEA包层级结构显示方式
  8. 虚幻四中怎么保持导入模型坐标_[CG分享]|虚幻引擎5 技术解析
  9. Centos 7 mini安装
  10. 基于matlab的图像仿真研究,基于MATLAB的图像锐化算法研究与仿真
  11. 【多任务学习-Multitask Learning概述】
  12. 新能源产业写入2021年11省两会政府工作报告,大爆发在即!
  13. 边云协同的优点_与云端握手 是时候谈谈边云协同这个边缘计算新风向了
  14. SQLServer还原数据库
  15. 制作多维度分组交叉销售统计表
  16. 图像卷积的常见误区与个人思考
  17. 矩阵分析之Householder Reduction
  18. 【php毕业设计】基于php+mysql+mvc的网上留言管理系统设计与实现(毕业论文+程序源码)——网上留言管理系统
  19. #个人日记-《扫黑·决战》电影观后感-20210511
  20. putty+xming树莓派远程显示图片/图形界面

热门文章

  1. 整理一份API接口,包括音乐API,图片API,聚合API等等
  2. Android 仿淘宝详情视频图片混合轮播
  3. 第一次使用Maven,新建Maven项目时更新出错出现Unable to update maven configuration following project...
  4. UE4-简单的FPS项目制作(B站视频笔记)P1P2
  5. crawler_浅谈网络爬虫
  6. echart之全国地图切换省级地图
  7. 模板有函数模板和类模板,这个在上学期的java课里面就学了,C++应该是一样的。
  8. WEB前端开发工程师 学习第二天 文字文本
  9. Android2.1源码目录结构
  10. 木板切割问题(二)——动态规划