生成词云图
词云图的生成其中有很多字段
在网上有很多的详解
关于其中的各个字段
然后这写字段中一些对于本项目而言
有一些比较重要的字段需要修改
其中就包括
图片宽高的选取
width=400, # 默认宽度
height=400, # 默认高度
边缘的控制
margin=0, # 边缘
margin=0, # 边缘
图片的背景
mask_pic = numpy.array(Image.open("../img/1.jpeg"))
mask=mask_pic, # 背景图形,如果想根据图片绘制,则需要设置
这个图片的背景是一个关于遮罩的设计
你的词云图形状会根据遮罩的部分来生成
最多显示的词汇量
一个词汇的显示
一张词云图中最多显示的词汇个数
max_words=100, # 最多显示的词汇量
背景颜色的设置
background_color='white', # 背景颜色设置,可以为具体颜色,
词汇的颜色
colormap=colors.ListedColormap(['#09F7F7', '#00FF66', '#09F7F7']), # matplotlib颜色主题,可更改名称,进而更改整体风格
以上是对于本项目一些比较关键的参数设置
然后直接生成词云图
import numpy
import numpy as np
from PIL import Image
import os
from os import path
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
from matplotlib import pyplot as plt
from matplotlib.pyplot import figure, show, rc
import matplotlib.colors as colors # 处理图片相关内容
# d = path.dirname(__file__) if "__file__" in locals() else os.getcwd()
text = open(r"../allpaper/allpaper4.txt", "r", encoding="utf-8").read()
mask_pic = numpy.array(Image.open("../img/1.jpeg"))
wc = WordCloud(font_path="msyh.ttc", # 字体路径,英文不用设置路径,中文需要,否则
width=400, # 默认宽度
height=400, # 默认高度
margin=0, # 边缘
ranks_only=None,
prefer_horizontal=0.9,
mask=mask_pic, # 背景图形,如果想根据图片绘制,则需要设置
scale=2,
color_func=None,
max_words=100, # 最多显示的词汇量
min_font_size=4, # 最小字号
stopwords=None, # 停止词设置,修正词云图时需要设置
random_state=None,
background_color='white', # 背景颜色设置,可以为具体颜色,
max_font_size=None, # 最大字号
font_step=1,
mode='RGB',
relative_scaling='auto',
regexp=None,
collocations=True,
colormap=colors.ListedColormap(['#09F7F7', '#00FF66', '#09F7F7']), # matplotlib颜色主题,可更改名称,进而更改整体风格
normalize_plurals=True,
contour_width=0,
contour_color='black',
repeat=False)
wc.generate_from_text(text)
fig = figure(figsize=(4, 4), dpi=600)
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.tight_layout()
plt.savefig('ciyuntu.png')
plt.show()