小编给大家分享一下Python如何制作个性化的词云图,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
词云图可以让我们方便地识别出文本中的关键词,其中单词的大小代表它们的频率。有了这个,我们甚至在阅读之前就可以很好地了解文本的内容。虽然有很多免费的工具可以在线制作文字云,但我们可以使用万能的Python来定制个性化的词云图。
在本文中,我们将使用第三方Python库stylecloud,有了该库,可以通过简短的几行代码来制作漂亮的词云图。如下所示:
接下来,我们将用来制作词云图的文本是偶像乔布斯在斯坦福大学演讲的一部分。点击这里可以获得对应的 .txt 文件或使用任何其他的文本来制作你自己的词云图。
这里我们可以直接使用pip来安装该词云库,代码如下:
pip3 install stylecloud
接着我们可以使用stylecloud.gen_stylecloud() 方法来生成词云图,通过传递相应的文本 .txt 文件的路径和生成词云的图标样式。
在网站上,我们可以方便的找到可用于 stylecloud 的图标样式列表。在此示例中,我选择了一个苹果作为图标。代码如下:
import stylecloud stylecloud.gen_stylecloud(file_path='SJ-Speech.txt', icon_name="fas fa-apple-alt")
上述代码运行后,在当前python文件目录下生成以png格式保存词云图,如下所示:
仔细观察gen_stylecloud函数的相关参数,我们可以控制背景颜色、单词的颜色、输出文件的名称等。为此,我们查看下面的代码:
stylecloud.gen_stylecloud(file_path='SJ-Speech.txt', icon_name='fas fa-apple-alt', colors='white', background_color='black', output_name='apple.png', collocations=False)
运行结果如下:
我们可以使用stop_words库来处理文本中的停用词,可以使用pip install stop_words
来安装该库。有了停用词列表,我们也可以将其传递给在gen_stylecloud函数中的custom_stopwords参数。
样例代码如下:
from stop_words import get_stop_words stop_words = get_stop_words('english') stylecloud.gen_stylecloud(file_path='SJ-Speech.txt', icon_name='fas fa-apple-alt', palette='cartocolors.qualitative.Pastel_3', background_color='black', output_name='apple.png', collocations=False, custom_stopwords=stop_words)
上述代码的运行结果如下:
在上述网站上有数百个免费图标可用于 stylecloud,但是但有时我们可能希望使用自己的图像来为创建更加个性化的词云图。此时,我们可以使用PIL库来读取图像,使用matplotlib来绘制我们的图像,使用wordcloud来制作对应的词云图。
下述代码中使用蝙蝠的图案来生成对应的词云图,代码如下:
from wordcloud import WordCloud, ImageColorGenerator from PIL import Image import matplotlib.pyplot as plt import numpy as np # create a mask based on the image we wish to include my_mask = np.array(Image.open('batman-logo.png')) # create a wordcloud wc = WordCloud(background_color='white', mask=my_mask, collocations=False, width=600, height=300, contour_width=3, contour_color='black', stopwords=stop_words) with open('SJ-Speech.txt',encoding='gb18030',errors='ignore') as txt_file: texto = txt_file.read() wc.generate(texto) image_colors = ImageColorGenerator(my_mask) wc.recolor(color_func=image_colors) plt.figure(figsize=(20, 10)) plt.imshow(wc, interpolation='bilinear') plt.axis('off') wc.to_file('wordcloud2.png') plt.show()
运行结果如下:
以上是“Python如何制作个性化的词云图”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。