python 圆形的词云

参考https://blog.csdn.net/qdPython/article/details/108754465

生成圆形MASK

主要思路是用一张矩阵图像来作为mask,其中没有文字的用255,有文字的用0或者别的数字。

生成mask的代码如下

import numpy as np
import matplotlib.pyplot as plt
# 直径
diameter = 1080

# 这里的代码借鉴https://blog.csdn.net/yuzeyuan12/article/details/108572868
def generate_mask(img_height,img_width,radius,center_x,center_y):
    y,x=np.ogrid[0:img_height,0:img_width]
    # circle mask 这里得到的是True和False的mask
    mask = (x-center_x)**2+(y-center_y)**2<=radius**2
    
    # 这里变成255和0的mask
    mask_255_0 = []
    for i in range(mask.shape[0]):
        mask_255_0.append([])
        for j in range(mask.shape[1]):
            if mask[i][j]:
                mask_255_0[i].append(0)
            else:
                mask_255_0[i].append(255)
    return np.array(mask_255_0)


mask = generate_mask(diameter,diameter,diameter/2,diameter/2,diameter/2)
plt.imshow(mask)

画出来应该长这样
在这里插入图片描述

WordCloud的属性和方法

属性

wordcloud属性作用
font_path字符串类型, 字体路径(windows下默认字体路径为C:\Windows\Fonts\如果是自行安装的字体,可能会在C:\Users\用户名\AppData\Local\Microsoft\Windows\Fonts)
width整数类型, 生成词云的宽度, 默认:400
height整数类型, 生成词云的高度, 默认:200
prefer_horizontal浮点类型,词语水平方向排版出现的频率,默认:0.9
mask遮罩图, 下方会详细介绍。默认:无
scale浮点类型, 按照比例进行放大画布, 默认:1
min_font_size整数类型, 显示的最小的字体大小, 默认:4
max_font_size整数类型, 显示的最大的字体大小, 默认:无
margin整数类型, 边缘空白宽度, 默认:2
font_step整数类型, 字体步长, 默认:1
max_words整数类型,要显示的词的最大个数 ,默认:200
background_color字符串类型, 背景颜色,默认:黑色
stopwords设置需要屏蔽的词,如果为空,则使用内置的STOPWORDS
relative_scaling浮点类型,词频和字体大小的关联性,默认:auto。
regexp字符串类型,使用正则表达式分隔输入的文本
collocations布尔类型, 是否包括两个词的搭配
colormap给每个单词随机分配颜色,若指定color_func,则忽略该方法。
normalize_plurals布尔类型,是否删除单词中的s,如果使用generate_from_frequencies,则将其忽略。默认:True
contour_width浮点类型,如果mask遮罩不是None和contour_width > 0,则绘制mask遮罩轮廓。默认:0
contour_color字符串类型, mask遮罩轮廓颜色。默认: black
repeat布尔类型,是否重复单词和短语,直到达到max_words或min_font_size。默认:False
include_numbers布尔类型,是否将数字包含为短语。默认:False
min_word_length整数类型,一个单词必须包含的最小字母数。默认:0
mode颜色模式,默认“RGB”。如果想设置透明底色的云词图,那么可以设置background_color=None, mode=“RGBA”
被弃用属性ranks_only

方法

wordcloud方法作用
fit_words(frequencies)根据词频生成词云(frequencies,为字典类型),generate_from_frequencies(frequencies)的简写
generate(text)根据文本生成词云,generate_from_text(text)的简写
generate_from_frequencies(frequencies, max_font_size=None)根据词频生成词云
generate_from_text(text)根据文本生成词云
process_text(text)将长文本分词并去除屏蔽词(此处指英语,中文分词还是需要自己用别的库先行实现,使用上面的 fit_words(frequencies) )
recolor([random_state, color_func, …])对现有输出重新着色。重新上色会比重新生成整个词云快很多。
to_array()转换为numpy数组。
to_file(filename)输出到文件(filename为输出文件名)
to_svg([embed_font, …])导出为SVG格式。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值