当前位置:   article > 正文

python生成固定形状的词云图_生成有形的词云图片

生成有形的词云图片

首先制作好自己想要的形状图片形状为黑色
背景为白色
如图所示
在这里插入图片描述

import matplotlib.pyplot as plt
import jieba
from wordcloud import wordcloud

# 1.读出词语
# text = open('text/test.txt', 'r', encoding='utf-8').read()
# print(text)

# 2.把歌词剪开
# cut_text = jieba.cut(text)
# print(type(cut_text))
# print(next(cut_text))
# print(next(cut_text))
# 3.以空格拼接起来
# result = " ".join(cut_text)
# print(result)
# 4.生成词云
result="""外向 善良 开朗 活泼 好动 轻松 愉快 热情 可亲 豁达 稳重 幽默 真诚 豪爽 耿直 成熟 独立
果断 健谈 机敏 深沉 坚强 兴奋 热情 率直 毅力 友爱 风趣 沉静 谨慎 忠诚 友善 严肃 忠心
乐观 坦率 勇敢 自信 自立 沉著 执著 容忍 体贴 满足 积极 有趣 知足 勤劳 和气 无畏 务实
 
轻浮 冲动 幼稚 自私 依赖 任性 自负 拜金 暴躁 倔强 虚伪 孤僻 刻薄 武断
浮躁 莽撞 易怒 轻率 善变 狡猾 易怒 多疑 懒惰 专横 顽固 猜疑 挑衅 冷漠
虚荣 冷淡 反覆 跋扈 自负 逆反 怨恨 鲁莽 放任 贫乏 固执
 
内向 脆弱 自卑 害羞 敏感 迟钝 柔弱 畏缩 顺从 胆小 安静 寡言 保守 被动 忍让
抑郁 谨慎 胆怯 温和 老实 平和 顺服 含蓄 迁就 羞涩 忸怩 缓慢 乏味 散漫
迟缓 罗嗦 耐性 悲观 消极 拖延 烦躁 妥协 唠叨
 
好交际 善组织 有韧性 可依赖 规范型 好心肠 善交际 无异议 竞争性 自控性 受尊重
激励性 重秩序 有条理 聆听者 无拘束 领导者 受欢迎
神经质 糊涂虫 有惰性 易兴奋 好批评 不专注 好争吵 无目标 不宽恕 无热忱 易激动
难预测 不合群 不灵活 喜操纵 情绪化 大嗓门 统治欲 强迫性 好表现
 
适应能力强 工作有效率 能克服困难 办事认真细心 严守秩序有条理 善于体察别人 常为小事而动感情
完美主义者 轻率不踏实 易见异思迁 易轻率作决定 语言动作迟缓 不易暴露内心活动
执拗不灵活 适应能力差 显得落落寡合 不圆滑老练 不善言谈交际"""


wc = wordcloud.WordCloud(
    font_path='liaocaoyy.ttf',  # 字体路劲
    background_color='white',  # 背景颜色
    width=1000,
    height=600,
    max_font_size=50,  # 字体大小
    min_font_size=10,
    mask=plt.imread('fivestar_b.jpg'),  # 背景图片
    max_words=1000
)
wc.generate(result)
wc.to_file('jielun.png')  # 图片保存

# 5.显示图片
plt.figure('jielun')  # 图片显示的名字
plt.imshow(wc)
plt.axis('off')  # 关闭坐标
plt.show()
if __name__ == '__main__':
    pass
  • 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
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59

结果如图所示
在这里插入图片描述
字体
https://download.csdn.net/download/weixin_32759777/12700903

import cv2
import jieba
from wordcloud import wordcloud
result="""高度重视和善于总结历史经验、以史为鉴,是我们党的鲜明特点和历史经验。每到重要历史关头,我们党都会总结党的历史,从中吸取历史智慧,掌握历史主动。1945年4月党的六届七中全会通过了《关于若干历史问题的决议》,1981年党的十一届六中全会通过了《关于建国以来党的若干历史问题的决议》,都对一些重大事件和重要人物作出了评价,分清了是非,统一了全党思想,对推动党和人民事业发展产生了重大影响。"""
import re

result = [i.strip() for i in jieba.cut(result) if i != "\n" or i != ","]
result = ["".join(re.compile("[\u4e00-\u9fa5]").findall(i)) for i in result]
result = [i for i in result if i.strip() and len(i.strip())>1 ]
# for i in:
#
#     for _ in range(result.count(i)):
#         result.remove(i)
result = " ".join(result)

wc = wordcloud.WordCloud(
    font_path='msyh.ttf',  # 字体路劲
    background_color='white',  # 背景颜色
    width=1000,
    height=600,
    max_font_size=60,  # 字体大小
    min_font_size=5,
    mask=cv2.imread("rennao.png"),  # 背景图片
    max_words=10000,
    colormap="gist_rainbow",
    stopwords={"报表","统计","取数","提取","数据"}
)
# colormap 选择网站
# https://matplotlib.org/2.0.2/examples/color/colormaps_reference.html

wc.generate(result)
wc.to_file('jie.png')
cv2.imshow("",cv2.imread("jie.png"))
print(wc.to_svg())

if __name__ == '__main__':
    pass

  • 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
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
import cv2
import jieba
from wordcloud import wordcloud

result = """"""
import re

result = [i.strip() for i in jieba.cut(result) if i != "\n" or i != ","]
result = ["".join(re.compile("[\u4e00-\u9fa5]").findall(i)) for i in result]
result = [i for i in result if i.strip() and len(i.strip())>1 ]
# for i in:
#
#     for _ in range(result.count(i)):
#         result.remove(i)
result = " ".join(result)
# color_name=['Accent', 'Accent_r', 'Blues', 'Blues_r', 'BrBG', 'BrBG_r', 'BuGn', 'BuGn_r', 'BuPu', 'BuPu_r', 'CMRmap', 'CMRmap_r', 'Dark2', 'Dark2_r', 'GnBu', 'GnBu_r', 'Greens', 'Greens_r', 'Greys', 'Greys_r', 'OrRd', 'OrRd_r', 'Oranges', 'Oranges_r', 'PRGn', 'PRGn_r', 'Paired', 'Paired_r', 'Pastel1', 'Pastel1_r', 'Pastel2', 'Pastel2_r', 'PiYG', 'PiYG_r', 'PuBu', 'PuBuGn', 'PuBuGn_r', 'PuBu_r', 'PuOr', 'PuOr_r', 'PuRd', 'PuRd_r', 'Purples', 'Purples_r', 'RdBu', 'RdBu_r', 'RdGy', 'RdGy_r', 'RdPu', 'RdPu_r', 'RdYlBu', 'RdYlBu_r', 'RdYlGn', 'RdYlGn_r', 'Reds', 'Reds_r', 'Set1', 'Set1_r', 'Set2', 'Set2_r', 'Set3', 'Set3_r', 'Spectral', 'Spectral_r', 'Wistia', 'Wistia_r', 'YlGn', 'YlGnBu', 'YlGnBu_r', 'YlGn_r', 'YlOrBr', 'YlOrBr_r', 'YlOrRd', 'YlOrRd_r', 'afmhot', 'afmhot_r', 'autumn', 'autumn_r', 'binary', 'binary_r', 'bone', 'bone_r', 'brg', 'brg_r', 'bwr', 'bwr_r', 'cividis', 'cividis_r', 'cool', 'cool_r', 'coolwarm', 'coolwarm_r', 'copper', 'copper_r', 'cubehelix', 'cubehelix_r', 'flag', 'flag_r', 'gist_earth', 'gist_earth_r', 'gist_gray', 'gist_gray_r', 'gist_heat', 'gist_heat_r', 'gist_ncar', 'gist_ncar_r', 'gist_rainbow', 'gist_rainbow_r', 'gist_stern', 'gist_stern_r', 'gist_yarg', 'gist_yarg_r', 'gnuplot', 'gnuplot2', 'gnuplot2_r', 'gnuplot_r', 'gray', 'gray_r', 'hot', 'hot_r', 'hsv', 'hsv_r', 'inferno', 'inferno_r', 'jet', 'jet_r', 'magma', 'magma_r', 'nipy_spectral', 'nipy_spectral_r', 'ocean', 'ocean_r', 'pink', 'pink_r', 'plasma', 'plasma_r', 'prism', 'prism_r', 'rainbow', 'rainbow_r', 'seismic', 'seismic_r', 'spring', 'spring_r', 'summer', 'summer_r', 'tab10', 'tab10_r', 'tab20', 'tab20_r', 'tab20b', 'tab20b_r', 'tab20c', 'tab20c_r', 'terrain', 'terrain_r', 'turbo', 'turbo_r', 'twilight', 'twilight_r', 'twilight_shifted', 'twilight_shifted_r', 'viridis', 'viridis_r', 'winter', 'winter_r']

import numpy as np
def grey_color_func(word, font_size, position,orientation,random_state=None, **kwargs):
    # 自定义颜色
    if np.random.randint(1,3)==1:
        return("rgb(255,0,0)")
    else:
        return("rgb(0,0,0)")

# for one_color in  color_name:
wc = wordcloud.WordCloud(
    font_path='msyh.ttf',  # 字体路劲
    background_color='white',  # 背景颜色
    width=1000,
    height=600,
    max_font_size=50,  # 字体大小
    min_font_size=10,
    mask=cv2.imread("log3.png"),  # 背景图片
    max_words=10000,
    color_func=grey_color_func,
    stopwords={"报表","统计","取数","提取","数据","汇总","明细","用于","情况","导出","按照","进行","北京","天津"}
)
# colormap 选择网站
# https://matplotlib.org/2.0.2/examples/color/colormaps_reference.html

wc.generate(result)
wc.to_file('{}.png'.format(22222))


if __name__ == '__main__':
    pass

  • 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
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
import cv2
import jieba
from wordcloud import wordcloud
result = """上午9点半,记者登录西安一码通页面,看到“西安一码通”页面的西安市个人电子识别码一栏,只显示时间、日期,无法打开二维码并查询到核酸结果。
市民李先生说,物业一大早就通知做核酸,但刚排到自己一码通就无法显示了,身份证目前不可以使用,物业让大家先行上楼等待通知。
随后,记者拨打了“西安一码通”热线,工作人员告诉记者,如果一码通出现问题,可以先卸载该小程序,然后再微信清理后台缓存(我的—设置—通用——存储空间),最后再重新关注登录就可以了。“今天早上一码通确实出现问题了,我们正在紧急修复,刚接到技术部门反馈已经处理好了,卸载后就可正常使用,给大家带来的不便,敬请谅解。"""
import re
result = [i.strip() for i in jieba.cut(result) if i != "\n" or i != ","]
result = ["".join(re.compile("[\u4e00-\u9fa5]").findall(i)) for i in result]
result = [i for i in result if i.strip() and len(i.strip())>1 ]
result = " ".join(result)
import numpy as np
def grey_color_func(word, font_size, position,orientation,random_state=None, **kwargs):
    # 自定义颜色
    if np.random.randint(1,5)==1:
        return("rgba(255,0,0,21)")
    elif np.random.randint(1,5)==2:
        return("rgba(0,255,0,22)")
    elif np.random.randint(1,5)==3:
        return("rgba(0,0,255,222)")
    else:
        return ("rgba(0,0,155,222)")


# for one_color in  color_name:
wc = wordcloud.WordCloud(
    font_path='msyh.ttf',  # 字体路劲
    background_color='white',  # 背景颜色
    width=1000,
    height=600,
    max_font_size=50,  # 字体大小
    min_font_size=10,
    mask=cv2.imread("rennao.png"),  # 背景图片
    max_words=10000,
    color_func=grey_color_func,
    stopwords={"报表","统计","取数","提取","数据","汇总","明细","用于","情况","导出","按照","进行","北京","天津"},
    mode="RGBA"
)
# colormap 选择网站
# https://matplotlib.org/2.0.2/examples/color/colormaps_reference.html
wc.generate(result)
wc.to_file('{}.png'.format(22222))


if __name__ == '__main__':
    pass

  • 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
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/557062
推荐阅读
相关标签
  

闽ICP备14008679号