wordcloud就是使用python将关键字词展示在图片上,主要可以用于数据分析,数据可视化中。
import jieba #把一句话分成单个的词 from PIL import Image #图片处理 import wordcloud #词云模块 import numpy as np #将图片转为数组
这些我都是能直接在pycharm中安装的,如果安装失败。看看这篇博客。
https://blog.csdn.net/qq_46092061/article/details/119274128
wordcloud对象参数
background_color | 图片的背景颜色,默认是黑色 wc = wordcloud.WordCloud(background_color = 'white') |
width | 图片的宽度,默认是400像素 wc = wordcloud.WordCloud(width=1000) |
height | 图片的高度,默认是200像素 wc = wordcloud.WordCloud(height=700) |
min_font_size | 词云中最小字的字体,默认4号 wc = wordcloud.WordCloud(min_font_size=6) |
max_font_size | 词云中最大字的字体,根据高度自动调节 wc = wordcloud.WordCloud(min_font_size=24) |
font_path | 词云字体样式的路径,msyh.ttc为微软雅黑 wc=wordcloud.WordCloud(font_path="msyh.ttc") |
max_words | 词云显示最大单词数量,默认200 wc=wordcloud.WordCloud(max_words=500) |
stopwords | 词云的排除词列表,即不显示的单词列表 wc=wordcloud.WordCloud(stopwords={"的","了"}) |
mask | 词云形状,默认为长方形,使用时将图片转换成数组 import numpy as np img = Image.open(r'.\static\file\img\tree1.jpg') #打开指定图片 img_array = np.array(img) #讲图片转换为数组 wc=wordcloud.WordCloud(mask=img_array ) |
wc.generate(content) #从文本生成词云wc.to_file(r'.\static\file\img\cloud.jpg') #导出图像文件
简单示例
import wordcloud
content = "To see a world in a grain of sand,and a heaven in a wild flower"
# 把词云当做一个对象
wc = wordcloud.WordCloud(background_color="white",
font_path="msyh.ttc")
wc.generate(content)
wc.to_file(r'.\static\file\img\cloud.jpg')
特定图形的词云
import jieba
from PIL import Image
import wordcloud
import numpy as np
import mysql.connector
#数据库取词
conn = mysql.connector.connect(
host='localhost',
user='root',
password='',
database='',
port=3306,
charset='utf8'
)
cur = conn.cursor()
sql = 'select quote from movies'
cur.execute(sql)
data = cur.fetchall()
text = ""
for item in data:
text = text + item[0]
cur.close()
conn.close()
#如果不需要使用数据库,就直接把文本交给jieba分词。
#精确模式lcut(),试图将句子最精确地切开,适合文本分析,单词无冗余
cut = jieba.lcut(text)
string = ' '.join(cut) #单引号中间有空格
img = Image.open(r'.\static\file\img\tree1.jpg') #打开遮罩图片
img_array = np.array(img) #讲图片转换为数组
wc = wordcloud.WordCloud(
background_color = 'white',
mask = img_array,
#字体所在电脑位置:C:\Windows\Fonts,如果要用中文就必须使用中文字体
font_path = "msyh.ttc" ,
height=700,
width=1000,
stopwords={"的","了","是","你","在","和","才"},#去除不需要的字词
max_words = 1200
)
wc.generate_from_text(string)
wc.to_file(r'.\static\file\img\cloud.png')
其实wordcloud还有很多其他的参数和使用方法,大家感兴趣可以去官网上查看。
https://amueller.github.io/word_cloud/generated/wordcloud.WordCloud.html