python关于定制词云的学习

本文介绍了如何使用Python的wordcloud库生成词云,详细讲述了配置对象参数、指定字体解决汉字显示问题以及创建带形状的词云。通过实例演示了从加载文本到输出词云的完整过程,包括遇到的问题及解决方案,如设置字体路径和调整词云大小。同时,提到了利用numpy和PIL库进行汉字切割和形状限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于定制词云的学习- 2020年2月22日16:28:19

这里是引用:https://www.cnblogs.com/randysun/p/11215095.html

一.第一个库,wordcloud库

1.1 库的基本方法构建函数
w = wordcloud.WordCloud()
1.2 wordcloud库的常规方法
方法描述
w.generate(txt)向WordCloud对象w中加载文本txt,w.generate("Python and WordCloud")
w.to_file(filename)将词云输出为图像文件,.png或.jpg,w.to_file(“outfile.png”)
  • 步骤1:配置对象参数
  • 步骤2:加载词云文本
  • 步骤3:输出词云文件
import wordcloud
w = wordcloud.WordCloud()
w.generate("this is me")
w.to_file("output.png") #方法一直接输出文件
msk = w.to_image()   #直接在当前界面输出
msk.show()       #直接展示出来
1.3 配置对象参数
参数描述
width指定词云对象生成图片的宽度,默认400像素
height指定词云对象生成图片的高度,默认200像素
min_font_size指定词云中字体的最小字号,默认4号
max_font_size指定词云中字体的最大字号,根据高度自动调节
font_step指定词云中字体字号的步进间隔,默认为1
font_path指定字体文件的路径,默认None
max_words指定词云显示的最大单词数量,默认200
stop_words指定词云的排除词列表,即不显示的单词列表
mask指定词云形状,默认为长方形,需要引用imread()函数
background_color指定词云图片的背景颜色,默认为黑色
1.4 实例将三体小说输出词云
1.4.1 开始写
import wordcloud
w = wordcloud.WordCloud()
w.genrate("santi.txt")
msk = w.to_image()
msk.show()

在这里插入图片描述

1.4.2 问题

这里有个问题就是没有读取santi.txt,所以要用到open函数继续重新写入open

import wordcloud
w = wordcloud.WordCloud()
f = open("santi.txt","r")
text = f.read()
w.generate(text)
msk = w.to_image()
msk.show()

在这里插入图片描述

1.4.3 显然遇到了新的问题那是因为wordcloud没有指定字体的原因,在这里我们重新给指定字体font_path即 wordcloud.WordCloud(font_path=r’‪C:\Windows\Fonts\simhei.ttf’)

C:\Windows\Fonts\这是里是系统的字体的路径,继续我们重新构造代码:

import wordcloud
w = wordcloud.WordCloud(font_path="C:\Windows\Fonts\simhei.ttf")
f = open("santi.txt","r")
text = f.read()
w.generate(text)
msk = w.to_image()
msk.show()

在这里插入图片描述

1.4.4这里虽然成功了但是有个问题就是显示的太小

默认是400*200像素 那么我们可以继续加参数 指定宽和高以及背景颜色都可以

w = wordcloud.WordCloud(font_path="C:\Windows\Fonts\simhei.ttf",width=800,height=600)

在这里插入图片描述

1.5关于生成一个带形状的词云

看到很多同学对生成一个形状词云感兴趣那么我们就来做一个带形状的词云,这里用到的包是PIL以及numpy
思路是

import wordcloud
from PIL import Image as image
import numpy as np
w=wordcloud.WordCloud(mask=mk)
f = open('santi.txt','r')  #打开文档
text = f.read()
mask = np.array(image.open('ceshi.jpg'))  #使用np函数制作一个图层让文字只在图像层显示。
w = wordcloud.WordCloud(font_path=r'‪C:\Windows\Fonts\simhei.ttf',mask=mask,background_color="white",width=800,height=600)
w.generate(text)              #向wordcloud中加载文档
w.to_file("pywordcloud.png")  #以图片的形式输出
img = w.to_image()           #或者直接展示输出
img.show()                   #或者直接展示输出
1.5.1关于汉字切割,

有的朋友说需要把汉字切割那就可以继续引入jieba函数,但是我没用到

import jieba  #切割汉字
def text_cn(text):
    new_text = jieba.cut(text)
    return new_text

知识点:

1.关于numpy的array的使用
2.关于PIL中的Image的使用 image.open()
3.以及wordcloud库的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值