Python3:生成词云图的代码

这篇博客介绍了如何使用Python3生成词云图,强调图片背景需为纯白或透明,首先进行词频统计。

我试了一下可以实现。将图片转换成一堆词语组成的图
图片的背景必须是纯白的或者透明

#可实现的代码
#生成词云图代码,图片背景必须为纯白色或透明色
import wordcloud
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt

def show(obj):
    img = Image.open(r"D:\Users\DUANPT\Desktop\k.jpg")
    bg=np.array(img)
    wc=wordcloud.WordCloud(
        'C:\Windows\Fonts\STHUPO.TTF',#字体,可自行去文件夹找字体
        width=500,
        height=300,
        background_color='white',
        mask=bg,#把cxk图片作为遮罩
        # random_state=35   #修该横竖单词比例
    )
    t=wc.generate(obj)
    t.to_file(r"D:\Users\DUANPT\Desktop\d2.png")
    # t.to_image().save('d:/xxx.png')  #把词云可视化图输出到D盘
    plt.imshow(t)
    plt.axis('off')    #开或关,坐标轴(x轴,y轴) ,off表示关,on表示开
    plt.show()

f=open(r"D:\Users\DUANPT\Desktop\panting.txt").read()
show(f)
import sys
import importlib#python3
importlib.reload(sys)
import jieba.analyse
from os import path
from scipy.misc import imread
import matplotlib as mpl 
import matplotlib.pyplot as plt 
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator

if __name__ == "__main__":
 
    mpl.rcParams['font.sans-serif'] = ['FangSong']
    #mpl.rcParams['axes.unicode_minus'] = False
    content = open(r"D:\Users\DUANPT\Desktop\111.txt","rb").read()
 
    # tags extraction based on TF-IDF algorithm
    tags = jieba.analyse.extract_tags(content, topK=100, withWeight=False)
    #topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
    #withWeight 为是否一并返回关键词权重值,默认值为 False
    text =" ".join(tags)
    text = str(text)
    # read the mask
    d = path.dirname(r"D:\Users\DUANPT\Desktop\k.jpg")
    trump_coloring = imread(path.join(d, "k.jpg"))
 
    wc = WordCloud(font_path='C:\Windows\Fonts\STHUPO.TTF',
            background_color="white", max_words=300, mask=trump_coloring,
            max_font_size=40, random_state=42) 
    # 修该横竖单词比例
    #max_words=300词云显示的最大单词数
 
    # generate word cloud 生成词云
    t = wc.generate(text)
 
    # generate color from image
    image_colors = ImageColorGenerator(trump_coloring)#给生成的词云图上色
    
    t.to_file(r"D:\Users\DUANPT\Desktop\hi.png")#将图片保存到路径
 
    plt.imshow(t)
    plt.axis("off")##去掉坐标轴
    plt.show()

统计词频:

import jieba
import pandas as pd
file_context=open(r"D:\Users\DUANPT\Desktop\111.txt").read()
words1=jieba.lcut(file_context)#全模式
words2=jieba.lcut_for_search(file_context)#搜索引擎模式
 
#统计词频
 
data1={}
for chara in words1:
    if len(chara)<2:
        continue
    if chara in data1:
        data1[chara]+=1
    else:
        data1[chara]=1
        
data1=sorted(data1.items(),key = lambda x:x[1],reverse = True) #排序
  
data2={}
for chara in words2:
    if len(chara)<2:
        continue
    if chara in data2:
        data2[chara]+=1
    else:
        data2[chara]=1
        
data2=sorted(data2.items(),key = lambda x:x[1],reverse = True) #排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值