python 词云图指定形状

方法-1:指定形状(mask参数修改)

import re # 正则表达式库
import collections # 词频统计库
import numpy as np # numpy数据处理库
import jieba # 结巴分词
import wordcloud # 词云展示库
from PIL import Image # 图像处理库
from imageio import imread
from wordcloud import WordCloud
import matplotlib.pyplot as plt # 图像展示库
txt="程序设计语言是计算机能够理解和识别用户操作意图的一种交互体系,它按照特定规则组织计算机指令,使计算机能够自动进行各种运算处理。"
w=wordcloud.WordCloud(width=1000,font_path="C:\Windows\Fonts\AdobeHeitiStd-Regular.otf",height=700)
cut_text = (" ".join(jieba.lcut(txt))) #将txt内容分词,建立词云库
# 打开背景图片
bg_pic = imread(r'D:\python\\20210704133745310.png')
# color_mask = np.array(bimg)
font = "C:\Windows\Fonts\AdobeHeitiStd-Regular.otf" #电脑自带的C盘里的字体
# 自定义文字颜色
# colormaps = colors.ListedColormap(['#FF0000','#FF7F50','#FFE4C4'])
w = WordCloud(
    background_color='black',
    width=700,
    height=300,
    max_words=2000,
    font_path = font,
    max_font_size=40,
    mask=bg_pic  # 该属性 字体显示形状 在非白色部分显示!!!
).generate_from_text(cut_text)
# word_cloud = cloud.generate_from_text(cut_text)
w.to_file("computerlanguage.png") #输出词云文本
#图片生成方法一:

img = Image.open('computerlanguage.png')
img.show()
#图片生成方法二:
# import matplotlib.pyplot as plt # 图像展示库
# plt.imshow(w) # 显示词云
# plt.axis('off') # 关闭坐标轴
# plt.show() # 显示图像

图片、txt文件和.py文件放在同一文件夹中

图片名称+格式:20210704133745310.png

方法-2:指定形状(mask参数修改)

from wordcloud import WordCloud
import os
from os import path
import matplotlib.pyplot as plt
import jieba
from imageio import imread

# 读取图片
bg_pic = imread('D:\python\\20210704133745310.png')
comment_text = open("D:\python\红楼梦.txt", "r", encoding='utf-8').read()
cut_text = jieba.lcut(comment_text)
print(cut_text)
cut_text = filter(lambda x: len(x) > 1, cut_text)
cut_text = list(cut_text)
cut_text = ' '.join(cut_text)
print(cut_text)
# 第一个参数 字体路径
font = "C:\Windows\Fonts\AdobeHeitiStd-Regular.otf" #电脑自带的C盘里的字体
cloud = WordCloud(
    background_color='white',
    width=700,
    height=300,
    max_words=2000,
    font_path = font,
    max_font_size=40,
    mask=bg_pic  # 该属性 字体显示形状 在非白色部分显示!!!
)

# 放入的是文本文件(必须是分词后的)  就是字符串
word_cloud = cloud.generate_from_text(cut_text)
plt.imshow(word_cloud)
plt.axis('off')  # 去掉X Y 轴坐标
plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值