【Python製作詞雲】改變詞雲字體顏色

Author:AXYZdong 自動化專業 工科男
有一點思考,有一點想法,有一點理性!
定個小小目標,努力成爲習慣!在最美的年華遇見更好的自己!
CSDN@AXYZdong,CSDN首發,AXYZdong原創
唯一博客更新的地址爲: 👉 AXYZdong的博客 👈


在這裏插入圖片描述

▲ 果然 @全體成員 最多


Python大數據搜索


1. 前言

對我這篇文章 【Python製作詞雲】分析QQ羣聊信息,記錄詞頻並製作詞雲 的一個優化。

2. 增加代碼


from matplotlib import colors

#建立顏色數組,可更改顏色
color_list=['#CD853F','#DC143C','#00FF7F','#FF6347','#8B008B','#00FFFF','#0000FF','#8B0000','#FF8C00',
            '#1E90FF','#00FF00','#FFD700','#008080','#008B8B','#8A2BE2','#228B22','#FA8072','#808080']

#調用
colormap=colors.ListedColormap(color_list)

ListedColormap(colors[, name, N]) 從顏色列表生成的Colormap對象。

更詳細的信息可以 點此跳轉

在設置詞雲樣式中增加了一行代碼:colormap=colormap, # 設置文字顏色

## 設置詞雲樣式  
wc = WordCloud(  
    background_color='white',   # 設置背景顏色  
    mask=backgroud_Image,       # 設置背景圖片  
    font_path='C:\Windows\Fonts\simfang.ttf', # 若是有中文的話,這句代碼必須添加,不然會出現方框,不出現漢字  
    max_words=2000,     # 設置最大現實的字數  
    stopwords=STOPWORDS,        # 設置停用詞
    colormap=colormap,  # 設置文字顏色
    max_font_size=150,  # 設置字體最大值  
    random_state=18     # 設置有多少種隨機生成狀態,即有多少種配色方案  
)

插播一條反爬蟲信息,讀者可以忽略:


在這裏插入圖片描述


3. 註釋代碼

#img_colors = ImageColorGenerator(backgroud_Image)       #改變字體顏色  
  
#wc.recolor(color_func=img_colors)       #字體顏色爲背景圖片的顏色

4. 優化後完整代碼

# =============================================
# --*-- coding: utf-8 --*--
# @Time    : 2020-06-18
# @Author  : AXYZdong
# @CSDN    : https://blog.csdn.net/qq_43328313
# @FileName: wc.py
# @Software: Python3.7
# =============================================

import jieba
import re
import collections
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator  
from PIL import Image
import matplotlib.pyplot as plt 

file = open("**羣.txt", "r", encoding="utf-8")
one_name = ["***"]
two_name = ["***"]
timepat = re.compile(r"\d{4}-\d{1,2}-\d{1,2}")

#建立顏色數組,可更改顏色
color_list=['#CD853F','#DC143C','#00FF7F','#FF6347','#8B008B','#00FFFF','#0000FF','#8B0000','#FF8C00',
            '#1E90FF','#00FF00','#FFD700','#008080','#008B8B','#8A2BE2','#228B22','#FA8072','#808080']

#調用
colormap=colors.ListedColormap(color_list)
 
## 分析羣聊天記錄,並通過jieba分詞
flag = 0
lines = file.readlines()
one_s = []
two_s = []
for line in lines:
	line = line.replace("[圖片]", "")
	line = line.replace("[表情]", "")
	line = line.replace("\n", "")
	if flag == "one":
		one_s.append(line)
		flag = 0
	if flag == "two":
		two_s.append(line)
		flag = 0
	if re.search(timepat, line):
		for w in one_name:
			if w in line:
				flag = "one"
				break
		for w in two_name:
			if w in line:
				flag = "two"
				break
 
print(len(one_s))
print(len(two_s))
##print(one_s[0:99])
 
remove_words = [u'的', u',',u'和', u'是', u'隨着', u'對於', u'對',u'等',u'能',u'都',u'。',u' ',u'、',u'中',u'在',u'了',
                u'通常',u'如果',u'我們',u'需要',u'我',u'你',u'?',u"",u" ",u"就",u"不","啊",
                u"吧",u"也",u"不是",u"就是",u"什麼",u"怎麼",u"這個",u"這麼",u"一個"]
k = 0
words = []
for s in two_s:
	thelist = jieba.cut(s, cut_all = False)
	for word in thelist:
		if word not in remove_words:
			if len(word) > 1:
				words.append(word)
 
word_counts = collections.Counter(words)
words_top10 = word_counts.most_common(10)
print(words_top10)      #打印前10詞頻

## 製作詞雲
backgroud_Image = plt.imread('面紗.jpg')  #選擇背景圖片,圖片要與.py文件同一目錄
print('加載圖片成功!')

## 設置詞雲樣式  
wc = WordCloud(  
    background_color='white',   # 設置背景顏色  
    mask=backgroud_Image,       # 設置背景圖片  
    font_path='C:\Windows\Fonts\msyhl.ttc', # 若是有中文的話,這句代碼必須添加,不然會出現方框,不出現漢字  
    max_words=2000,     # 設置最大現實的字數  
    stopwords=STOPWORDS,        # 設置停用詞  
    colormap=colormap,  # 設置文字顏色
    max_font_size=150,  # 設置字體最大值  
    random_state=30     # 設置有多少種隨機生成狀態,即有多少種配色方案  
)

wc.generate_from_frequencies(word_counts)  #通過頻率生成詞雲
print('開始加載文本')  

#img_colors = ImageColorGenerator(backgroud_Image)       #改變字體顏色   
#wc.recolor(color_func=img_colors)       #字體顏色爲背景圖片的顏色
 
plt.imshow(wc)  # 顯示詞雲圖
plt.axis('off') # 是否顯示x軸、y軸下標  
plt.show()
print('生成詞雲成功!')

詳細解釋請參考 : 【Python製作詞雲】分析QQ羣聊信息,記錄詞頻並製作詞雲


5. 總結

  • 利用 matplotlibcolors 這個類
  • 通過對自定義顏色列表的修改,詞雲字體的顏色就會發生改變
  • 當然也可以利用背景圖片的顏色作爲字體顏色


  本次的分享就到這裏


11

好書不厭百回讀,熟讀自知其中意。將學習成爲習慣,用知識改變命運,用博客見證成長,用行動證明努力。
如果我的博客對你有幫助、如果你喜歡我的博客內容,請 “點贊” “評論” “收藏” 一鍵三連哦!
聽說 👉 點贊 👈 的人運氣不會太差,每一天都會元氣滿滿呦!^ _ ^ ❤️ ❤️ ❤️
碼字不易,大家的支持就是我堅持下去的動力。點贊後不要忘了👉關注👈我哦!
更多精彩內容請前往 AXYZdong的博客


如果以上內容有任何錯誤或者不準確的地方,歡迎在下面👇留個言。或者你有更好的想法,歡迎一起交流學習~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章