Python制作词云的方法

yipeiwu_com6年前Python基础

需求:

看到朋友圈有人发词云照片,感觉自己也可以玩一玩,于是乎借助wordcloud实现功能。

环境:

MacOS 10.12 +Python 2.7 +Wordcloud
Windows通用

准备:

安装wordcloud

$ pip install wordcloud

SIP功能是Apple在OSX上推出的系统完整性保护功能,新版本的macOS直接用pip安装报错,在不关闭SIP功能的前提下,可以使用

$ pip install wordcloud --user -U

某些情况还会提示错误,需要安装VS for Python,直接上官网下载安装即可。

实现:

源码

#! /usr/bin/env python

# import
from os import path
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS

# current path
d = path.dirname(__file__)

# Read the whole text.
text = open(path.join(d, 'test.txt')).read()

# read the mask image
test_mask = np.array(Image.open(path.join(d, "test_mask.png")))

stopwords = set(STOPWORDS)
stopwords.add("said")

# setting
wc = WordCloud(background_color="black", max_words=2000, mask=test_mask,
        stopwords=stopwords)

# generate word cloud
wc.generate(text)

# plot and show
plt.imshow(wc, interpolation='bilinear')
plt.axis("off")
plt.figure()
plt.imshow(test_mask, cmap=plt.cm.gray, interpolation='bilinear')
plt.axis("off")
plt.show()

# store to file
wc.to_file(path.join(d, "test.png"))

辅助文件

test_mask.png

test.txt

The list of big's prior run-ins with the far-right fringe is long and varied. He tweeted fake crime statistics spread by racists to paint black cans as violent, then defended them as credible. He sparked a firestorm last year when he declined to renounce

效果图

这里写图片描述

其它说明:

1.文档可以是任意英文txt文件,以上的是网络上英文新闻中的一小段,仅起示例作用。
2.关于中文支持,有多种方法,主要就是分词的问题,这里不讨论了。
3.我不清楚许多人说的定制是什么意思,因为如果想要自己任意想要的形状的话,我觉得用PS做一个png图可以达到同样的效果,经测试也没有发现问题。
4.写的第一篇文章,不足之处欢迎来喷,毕竟我是要学习的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

分享一个pycharm专业版安装的永久使用方法

分享一个pycharm专业版安装的永久使用方法

刚开始接触Python,首先要解决的就是Python开发环境的搭建。 目前比较好用的Python开发工具是PyCharm,他有社区办和专业版两个版本,但是社区版支持有限,我们既然想好好学...

python函数声明和调用定义及原理详解

这篇文章主要介绍了python函数声明和调用定义及原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 函数是指代码片段,可以重复调...

PyQt Qt Designer工具的布局管理详解

PyQt Qt Designer工具的布局管理详解

前言 这节课很重要。。界面整洁美观与否就看布局了。。这里讲布局方法,至于设计的天赋与最终界面的美感那就看造化了。。 本文主要讲述Qt Designer工具实现界面控件布局管理,就是排列组...

go和python变量赋值遇到的一个问题

平时写得多的是python,最近看了一点go,今天碰到了一个问题,和大家分享一下 package main import "fmt" type student struct {...

Python中实现变量赋值传递时的引用和拷贝方法

iamlaosong文 曾经看到这样一个问题,一个字典中的元素是列表,将这个列表元素赋值给一个变量,然后修改这个列表中元素的值,结果发现,字典中那个列表也同样修改了。 那个问题如下:...