‘壹’ python为什么wordcloud 生成的词云,单词排列不够紧凑
你设置的最大号字体也就是max_font_size相对于整个图片太小了(可以设置成120试试,估计整个就会显得稠密了),而你出现的人物本身就不多,自然出来显得稀稀拉拉。
‘贰’ python制作词云的时候怎么使文字密集一点
选用的词越多(max_words),样本越大(文本的长度),就越接近正态分布。
在正态分布的情况下,低频词就相对多(长尾定率)。
然后就是调整max_font_size与min_font_size以及relative_scaling了,这三个参数的取值对表观上的密集程度有影响。
如果max_words小,长尾不明显,词云中小字就少,很多地方没有词去填补空白,就显示得不密集。
如果max_font_size与min_font_size没拉开,低频词(长尾部分)就没有小到足够在高频词的空白中填入,字中空白就让整个云显得不密集。
最后调整relative_scaling使交叉方向的比例合适,一些词的空白处就能填入一些较短的低频词进一步减少空白。
‘叁’ 如何使用python来实现个性化词云的示例代码分享
#coding=utf-8
#usingpython27
fromosimportpath
fromPILimportImage
importnumpyasnp
importmatplotlib.pyplotasplt
fromwordcloudimportWordCloud,STOPWORDS,ImageColorGenerator
#d=path.dirname(__file__)
#Readthewholetext.
text=open(r'C:StudyPythonwordcloud_alice.txt').read()
#readthemask/colorimagetakenfrom
#http://jirkavinse.deviantart.com/art/quot-Real-Life-quot-Alice-282261010
alice_coloring=np.array(Image.open(r'C:StudyPythonwordcloud_alice_color.png'))
stopwords=set(STOPWORDS)
stopwords.add("said")
wc=WordCloud(background_color="white",max_words=2000,mask=alice_coloring,
stopwords=stopwords,max_font_size=40,random_state=42)
#generatewordcloud
wc.generate(text)
#createcoloringfromimage
image_colors=ImageColorGenerator(alice_coloring)
#show
plt.imshow(wc,interpolation="bilinear")
plt.axis("off")
plt.figure()
#recolorwordcloudandshow
#wecouldalsogivecolor_func=image_
plt.imshow(wc.recolor(color_func=image_colors),interpolation="bilinear")
plt.axis("off")
plt.figure()
plt.imshow(alice_coloring,cmap=plt.cm.gray,interpolation="bilinear")
plt.axis("off")
plt.show()
执行这个代码还需要两个文件, 网络知道不能上传, 可以用扣或者私我传给你
运行结果:
‘肆’ python中的词云模块wordcloud如何自定义颜色及词语所占面积
请看官方文档
‘伍’ python生成词云,要求频率越小生成的字词越大,老师的要求,请各位大佬解答,感谢,急急急!!!
按照常理可以实现,但是python是智能的,不能安装常理算。关注点有点偏,老师不是刁难学生,而是帮助学生进步。你可以去问问老师具体的思路,祝你取得更大的进步。
‘陆’ Python程序如何使用参数
用sys模块,使用sys.argv接收参数,sys.argv是一个列表,第2个元素开始是传递进来的值,传递的时候用空格割开就好
import sys
for x in sys.argv:
....print(x)
‘柒’ 词云怎么调用生成 python
把两个脚本filea.py 和 fileb.py 放在同一个目录下,然后在filea.py的开头写: import fileb 然后就可以使用fileb.py中定义的函数了
‘捌’ python如何自定义词云
推荐使用jieba模块来实现分词,WordCloud来绘制词云。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# -*- coding: utf-8 -*-
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import jieba
from wordcloud import WordCloud, STOPWORDS
# Read the whole text.
text = open('内容.txt', 'r').read()
text = " ".join(jieba.cut(text, cut_all=False))
# 爱心.png表示你绘图模板,就是最后图片的形状
alice_mask = np.array(Image.open('爱心.png'))
# 中文需要设置字体,songti.ttf代表宋体
wc = WordCloud(font_path='songti.ttf', background_color="white", mask=alice_mask,
max_words=2000)
# generate word cloud
wc.generate(text)
# store to file
wc.to_file('result.png')
# show
plt.imshow(wc)
plt.axis("off")
# plt.figure()
# plt.imshow(alice_mask, cmap=plt.cm.gray)
# plt.axis("off")
plt.show()
‘玖’ python wordcloud参数怎么把文字设置成白色吗
首选wordcloud也是分不同的版本的,不同版本之间wordcloud参数和方法还是有一些不同。
color_func的参数得是一个object,不得传str类型,具体传参数用法及方法间的调用,可以查看源码。
color_func=get_single_color_func('white')
修改为这个试试
‘拾’ 如何用python做词云pdf
,决定用python绘制词云,主要用到的是wordcloud库,安装只需要pip isntall wordcloud就行,
数据用的是酒店评论的数据,代码如下:
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import pickle
from wordcloud import WordCloud,STOPWORDS,ImageColorGenerator
import jieba
# import codecs
# fin = codecs.open('HotelComments.txt',mode = 'r', encoding = 'utf-8')
# print fin.read()
# 第一次运行程序时将分好的词存入文件
# text = ''
# with open('HotelComments.txt') as fin:
# for line in fin.readlines():
# line = line.strip('\n')
# text += ' '.join(jieba.cut(line))
# text += ' '
# fout = open('text.txt','wb')
# pickle.mp(text,fout)
# fout.close()
# 直接从文件读取数据
fr = open('text.txt','rb')
text = pickle.load(fr)
backgroud_Image = plt.imread('girl.jpg')
wc = WordCloud( background_color = 'white', # 设置背景颜色
mask = backgroud_Image, # 设置背景图片
max_words = 2000, # 设置最大现实的字数
stopwords = STOPWORDS, # 设置停用词
font_path = 'C:/Users/Windows/fonts/msyh.ttf',# 设置字体格式,如不设置显示不了中文
max_font_size = 50, # 设置字体最大值
random_state = 30, # 设置有多少种随机生成状态,即有多少种配色方案
)
wc.generate(text)
image_colors = ImageColorGenerator(backgroud_Image)
wc.recolor(color_func = image_colors)
plt.imshow(wc)
plt.axis('off')
plt.show()