Python 制作词云大总结,你会选择哪一款?

点击上方“编程派”,选择设为“设为星标”

优质文章,第一时间送达!

前言

大家好,不知道大家会在什么场合使用词云图,对我来说词云图的优点除了它可以展示大量文本数据,从而让读者快速抓住重点,更重要的是词云图好看啊,今天给大家分享几种词云图的制作方法。

首先我们来思考一下词云图是怎样生成的,简单来说不就是读取文本—>分词—>计算词频—>词云。

下面将以我们制作词云的复杂程度来介绍不同的方法。

在线交互式制作:图悦词云

最省事的当然是一步到位,将文本数据传进去然后直接整个词云图出来,这时一般要借助第三方网站。

首先登场选手是最简单的词云制作:图悦词云

http://www.picdata.cn/picdata/index.php#

就像上图一样,不用注册不用登陆,把文本粘贴进去就出来词云了,但是可选择的样式较少而且有水印,并且也不支持更多的参数调整。

主观评分:60分|毕竟能满足基本的词云制作。

在线交互式制作:微思词云

下一位选手是微思词云

https://wis-ai.com/wordcloud

可以看到,相较于上一个网站,该网站的词云并没有水印,看上去也舒服一点,并且支持对文字旋转、背景颜色、字体等相关参数进行调整。

但是需要先注册登陆才可以使用并且每个账户有一定的使用次数,部分功能需要付费。

主观评分:65分|需要很多的邮箱才能一直用。

在线交互式制作:花火词云

最后一位在线制作词云的选手是花火

http://hanabi.data-viz.cn/visualisation

可以看到,花火相较于上面两个在线平台,依旧是传个txt进去就出来词云,但是做出来的图更好看,并且支持更多自定义的参数,不过需要付费才能去除水印。

主观评分75分|颜值即正义,但是门票¥30/月

以上就是几个在线制作词云网站的测评,并无任何广告与抹黑,其实与其他没有列出的网站都大同小异,免费的功能简单复杂的图会好看点但是会收费,各有千秋吧。

接下来有请Python出场。

Python 制作:Pyecharts

Python 中制作词云使用 Pyecharts 还是比较方便的,做出来的图也比较清爽。

https://pyecharts.org/#/zh-cn/basic_charts?id=wordcloud%ef%bc%9a%e8%af%8d%e4%ba%91%e5%9b%be

因为是写代码制作那么有关文字样式、旋转角度、高度、距离、阴影等都可以自定义,并且可以使用 pyecharts 的局和系列配置项进行调整。

唯一的问题是 pyecharts 接收的数据必须是类似经过分词计算之后的数据,也就是你要给它这样的数据。

data = [
    ("生活资源", "999"),
    ("供热管理", "888"),
    ("供气质量", "777"),
    ("生活用水管理", "688"),
    ("一次供水问题", "588"),
    ("交通运输", "516"),
    ("城市交通", "515"),
    ("环境保护", "483"),
    ("房地产管理", "462"),
    ("城乡建设", "449"),
    ("社会保障与福利", "429"),
......
]

当然这里的数字并不一定需要是频率,也可以是权重等数据。

所以如果需要绘制词云的数据恰好是这种计算好的数据,尝试使用 Pyecharts 吧。

主观评分75分|好看但也有一定限制。

Python 制作:wordcloud

现在登场的就是 Python 中制作词云最常用的 wordcloud,说到 wordcloud 就不得不介绍 jieba 分词了,简单来说流程就是传一个 txt 进去, jieba 分词得到结果后再传给 wordcloud 制作词云,同时支持比 Pyecharts 更多的自定义设置。

from wordcloud import WordCloud
import matplotlib.pyplot as plt #绘制图像的模块
import  jieba #jieba分词

path_txt='music.txt'
f = open(path_txt,'r',encoding='UTF-8').read()

# 结巴分词,生成字符串,wordcloud无法直接生成正确的中文词云
cut_text = " ".join(jieba.cut(f))

wordcloud = WordCloud(
   #设置字体,不然会出现口字乱码,文字的路径是电脑的字体一般路径,可以换成别的
   font_path="msyh.ttc",
   #设置了背景,宽高
   background_color="white",width=1000,height=1000).generate(cut_text)

plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()

从代码和词云效果来看,wordcloud 由于支持修改的参数更多,所以也就需要更多的测试不同效果下的图片来找到适合这组数据最优的词云,比如我的这图看着就没有 pyecharts 生成的舒服,当然只要自己调整好了,就可以保存为一个脚本以后直接使用即可。

主观评分80分|毕竟是使用最多的词云库。

Python 制作:stylecloud

最后介绍一个由 wordcloud 优化而来的库 stylecloud,也需要搭配 jieba 分词使用,但是代码更加简介,生成的词云也更加美观,比如还是刚刚的文本,使用下面的代码即可

def jieba_cloud(file_name):
    with open(file_name,'r',encoding='utf8') as f:
        word_list = jieba.cut(f.read())
        result = " ".join(word_list) #分词用 隔开
        #制作中文云词
        gen_stylecloud(text=result,font_path='msyh.ttc',output_name=file_name.split('.')[0] + '.png') #必须加中文字体,否则格式错误
        
if __name__ == "__main__":
    file_name = 'music.txt'
    jieba_cloud(file_name)

可以看到,在不添加任何配置项默认生成的词云比 wordcloud 更清爽一点,并且也支持更改颜色、背景、风格等。

主观评分 85 分|毕竟简单操作能画出好看的词云。

结束语

以上就是一些绘制词云图的方法,你用过哪些?你又会选择哪一款。

当然绘制词云的方法远不止这些,如果你有生成词云更简单、更好看的方法。不过虽然词云图很酷炫,但并不是所有数据都适合用词云图显示,例如数据量太少时很难布局出好看的词云图,此时就需要考虑其他的图表了。

PyCharm 2020.1 稳定版发布

pip install 今年将出现重大变化!

入坑 Python 后强烈推荐的一套工具库

实战:Flask + Vue 生成漂亮的词云

Github 热门,程序员想拿高薪建议都看看

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,立即获取主页君与小伙伴一起翻译的《Think Python 2e》电子版
回复关键词「入门资料」,立即获取主页君整理的 10 本 Python 入门书的电子版
回复关键词「m」,立即获取Python精选优质文章合集
回复关键词「book 数字」,将数字替换成 0 及以上数字,有惊喜好礼哦~
题图:pexels,CC0 授权。

好文章,我在看❤️
### 回答1: 制作词云图可以使用Python中的wordcloud库。以下是一个简单的例子: ```python # 导入必要的库 from wordcloud import WordCloud import matplotlib.pyplot as plt # 设置文本 text = "Python is a popular programming language. It is used for web development, data analysis, artificial intelligence, and more." # 创建词云对象 wc = WordCloud(background_color="white", max_words=2000, width=800, height=400) # 生成词云 wc.generate(text) # 显示词云 plt.imshow(wc, interpolation="bilinear") plt.axis("off") plt.show() ``` 在上面的代码中,我们首先设置了要用于制作词云的文本,然后创建了一个WordCloud对象,并设置了一些参数,例如背景颜色、最大词汇量、宽度和高度等。接下来,我们使用`generate()`方法生成词云,并使用Matplotlib库中的`imshow()`和`show()`方法显示词云。 注意,我们还可以在生成词云前对文本进行一些预处理,例如去除停用词、进行分词等。这样可以提高词云的质量和可读性。 ### 回答2: Python制作词云图的方法非常简单。首先,我们需要安装一个名为"wordcloud"的Python库,可以通过使用pip命令进行安装。接下来,我们需要导入所需的库,比如"wordcloud"和"matplotlib"。然后,我们可以使用wordcloud库的WordCloud类来创建一个词云对象。在创建词云对象时,我们可以设置一些参数,例如背景颜色、最大显示词的数量、字体类型等。然后,我们可以使用generate()方法根据一段文本来生成词云。最后,通过使用matplotlib库中的pyplot模块,我们可以将词云以图形的形式显示出来。除了显示,我们还可以使用to_file()方法将词云保存为图片文件。 总结来说,制作词云图的步骤如下: 1. 安装"wordcloud"库。 2. 导入"wordcloud"和"matplotlib"库。 3. 创建一个词云对象,设置参数。 4. 生成词云。 5. 以图形的形式显示词云。 6. 可选:保存词云为图片文件。 ### 回答3: Python制作词云图主要使用WordCloud库。WordCloud库提供了一种简单的方法来可视化文本数据中的词频。下面是一个简单的步骤来制作词云图。 首先,安装WordCloud库。可以使用pip命令来安装,如下所示: ```python pip install wordcloud ``` 然后,导入WordCloud库和其他必要的库,如下所示: ```python import matplotlib.pyplot as plt from wordcloud import WordCloud ``` 接下来,从文本中读取需要生成词云图的数据。可以使用open()函数来打开文本文件,并使用read()方法来读取文本数据。 ```python text = open("text.txt", "r").read() ``` 然后,创建一个WordCloud对象,并使用generate()方法来生成词云图。可以根据需要设置不同的参数,例如最大词汇量、背景颜色、字体等。 ```python wordcloud = WordCloud(max_words=50, background_color="white").generate(text) ``` 最后,使用matplotlib库的pyplot模块来显示词云图。可以使用imshow()方法显示词云图,并使用axis("off")方法关闭坐标轴。 ```python plt.imshow(wordcloud, interpolation='bilinear') plt.axis("off") plt.show() ``` 运行以上代码,就可以生成一个简单的词云图。可以根据需要调整参数以及添加其他功能,例如颜色映射、控制词频、自定义形状等。 总结起来,Python制作词云图的步骤包括安装WordCloud库、导入必要的库、读取文本数据、创建WordCloud对象、生成词云图以及显示词云图。这样就能够使用Python制作出漂亮的词云图来可视化文本数据中的词频。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值