美化词云图—stylecloud

基础

stylecloud是wordcloud优化改良版,操作简单,直接调用。

stylecloud的特点:

  • 可以使用 Font Awesome 提供的免费图标更改词云的形状;
  • 通过 palettable 更改调色板以自定义风格,更改背景颜色;
  • 添加梯度使颜色按照特定方向流动。

stylecloud的安装:

pip install stylecloud

导包:

import jieba
from stylecloud import gen_stylecloud

参数:

gen_stylecloud(text=None,            #输入字体
                   file_path=None,   # 输入文本/CSV 的文件路径
                   gradient=None,    #渐变方向(梯度方向),默认是horizontal
                   size=512,         # stylecloud 的大小(长度和宽度,调大可以提高图片的清晰度)
                   icon_name='fas fa-flag',  # stylecloud 形状的图标名称(如 fas fa-grin)。[default: fas fa-flag]
                   palette='cartocolors.qualitative.Bold_5',  # 调色板(通过 palettable 实现)。[default: cartocolors.qualitative.Bold_6]
                   colors=None,     #文本颜色
                   background_color="white",  # 背景颜色
                   max_font_size=200,  # stylecloud 中的最大字号
                   max_words=2000,  # stylecloud 可包含的最大单词数
                   stopwords=True,  # 布尔值,用于筛除常见禁用词
                   custom_stopwords=STOPWORDS,#list定制停用词列表
                   icon_dir='.temp',
                   output_name='stylecloud.png',   # stylecloud 的输出文本名
                   font_path=os.path.join(STATIC_PATH,
                                          'Staatliches-Regular.ttf'), # stylecloud 所用字体
                   random_state=None,  # 控制单词和颜色的随机状态
                   collocations=True,#是否包括两个单词的搭配
                   invert_mask=False,#是否反转图标掩码
                   pro_icon_path=None,
                   pro_css_path=None)

例子

默认情况下,词云的形状是一面旗帜

import jieba#分词库
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from stylecloud import gen_stylecloud

df = pd.read_excel(r'D:\python学习\评论.xlsx')#读取文本

def get_cut_words(content_series):
    # 读入停用词表
    stop_words = [] 
    with open(r"D:\python学习\\chineseStopWords.txt", 'r') as f:
        lines = f.readlines()
        for line in lines:
            stop_words.append(line.strip())
    # 添加关键词
    #my_words = []    
    #for i in my_words:
        #jieba.add_word(i) 
    # 自定义停用词
    my_stop_words = ['快递', '收到',]   
    stop_words.extend(my_stop_words)               
    # 分词
    content=';'.join([ str(c) for c in content_series.tolist()])
    word_num = jieba.lcut(content)
    # 条件筛选
    word_num_selected = [i for i in word_num if i not in stop_words and len(i)>=2]
    return word_num_selected


text1 = get_cut_words(content_series=df['评论'])

result = " ".join(text1)
gen_stylecloud(text=result,
               font_path='C:\\Windows\\Fonts\\STKAITI.TTF',
               max_font_size=70,
               output_name=r'D:\python学习\zihaowordcloud\code\pic.png',
               ) #必须加中文字体,否则格式错误

在这里插入图片描述

改变形状

用icon_name,改变形状(fas fa-)
StyleCloud的默认形状为旗帜,同时支持Font Awesome提供的免费形状。
详情点击: Font Awesome网站.
在这里插入图片描述

代码:

gen_stylecloud(text=result,
               font_path='C:\\Windows\\Fonts\\STKAITI.TTF',
               icon_name='fas fa-birthday-cake',
               max_words=100,
               max_font_size=70,
               output_name=r'D:\python学习\zihaowordcloud\code\pic.png',
               ) #必须加中文字体,否则格式错误

在这里插入图片描述
或者
https://fa5.dashgame.com/#/%E5%9B%BE%E6%A0%87.
https://fontawesome.com/icons?d=gallery.

改色

可以参考 https://jiffyclub.github.io/palettable/.

在这里插入图片描述
在这里插入图片描述
配色有很多种:
在这里插入图片描述

result = " ".join(text1)
gen_stylecloud(text=result,
               font_path='C:\\Windows\\Fonts\\STKAITI.TTF',
               palette='cartocolors.diverging.ArmyRose_3',
               #palette=random.choice(choices)            # 随机选取配色方案
               max_words=100,
               max_font_size=70,
               background_color="black",
               output_name=r'D:\python学习\zihaowordcloud\code\pic.png',
               ) #必须加中文字体,否则格式错误

在这里插入图片描述

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 好的,下面是使用 Python 绘制词云图的步骤: 1. 安装所需库 使用以下命令安装所需的库: ``` pip install jieba pip install wordcloud pip install imageio ``` 2. 准备文本 将需要绘制词云图的文本保存在一个文本文件中,例如 `text.txt`。 3. 分词 使用 `jieba` 库对文本进行分词,将分好的词保存在列表中: ```python import jieba with open('text.txt', 'r', encoding='utf-8') as f: text = f.read() word_list = jieba.cut(text) ``` 4. 统计词频 使用 `collections` 库中的 `Counter` 函数统计每个词出现的次数: ```python from collections import Counter word_count = Counter(word_list) ``` 5. 生成词云图 使用 `wordcloud` 库生成词云图: ```python from wordcloud import WordCloud import imageio mask = imageio.imread('mask.png') # 词云图形状 wc = WordCloud(font_path='font.ttf', background_color='white', mask=mask) wc.generate_from_frequencies(word_count) wc.to_file('wordcloud.png') # 保存词云图 ``` 其中,`font_path` 参数指定字体文件路径,`background_color` 参数指定背景色,`mask` 参数指定词云图形状。 6. 完整代码 ```python import jieba from collections import Counter from wordcloud import WordCloud import imageio with open('text.txt', 'r', encoding='utf-8') as f: text = f.read() word_list = jieba.cut(text) word_count = Counter(word_list) mask = imageio.imread('mask.png') # 词云图形状 wc = WordCloud(font_path='font.ttf', background_color='white', mask=mask) wc.generate_from_frequencies(word_count) wc.to_file('wordcloud.png') # 保存词云图 ``` 其中,`text.txt` 是文本文件路径,`mask.png` 是词云图形状文件路径,`font.ttf` 是字体文件路径,`wordcloud.png` 是词云图保存路径。 ### 回答2: Python绘制词云图是一种常见的数据可视化方法,适用于对大量文本数据进行分析和展示。下面是用Python绘制词云图的基本步骤: 1. 安装必要的库:需要安装wordcloud库和matplotlib库。可以使用pip命令来进行安装。 2. 准备文本数据:将需要分析的文本数据准备好,可以是一个文本文件或者一个字符串变量。 3. 数据预处理:对文本数据进行预处理,如去除停用词、标点符号、数字等。 4. 创建词云对象:使用wordcloud库创建一个词云对象,并设置其基本参数,比如背景颜色、词云形状、字体类型等。 5. 生成词云图:调用词云对象的generate方法,将预处理后的文本数据传入,生成词云图。 6. 显示词云图:使用matplotlib库将生成的词云图显示出来。可以通过设置图像大小、颜色等进行美化。 7. 保存词云图(可选):可以将生成的词云图保存成图片文件,使用词云对象的to_file方法。 以上是用Python绘制词云图的基本步骤。通过调整参数和优化预处理过程,可以进一步改进词云图的效果。词云图能够直观地展示文本数据中出现频率较高的关键词,有助于了解文本内容的重点和热点。在文本分析、舆情监测、信息可视化等领域,词云图都有广泛的应用。 ### 回答3: Python是一种流行的编程语言,可以用来进行各种数据分析和可视化。绘制词云图Python中一项很有趣和有用的任务。 要使用Python绘制词云图,我们需要安装一个包叫做"wordcloud"。可以使用命令`pip install wordcloud`来安装。 在安装完"wordcloud"包之后,我们可以导入它并使用其中的函数来绘制词云图。 首先,我们需要准备一个文本文件,里面包含我们想要制作词云图的文本。可以是一篇文章、一本书或者一些评论数据等。 接下来,我们需要使用Python读取这个文本文件,并进行一些文本处理的步骤,例如去除停用词、分词等。可以使用Python中的自然语言处理库,如NLTK或spaCy。 处理完文本之后,我们可以使用"wordcloud"库中的`WordCloud`类来创建一个词云对象。可以设置词云图的一些属性,例如词云的形状、字体、背景颜色等。 最后,我们只需要调用词云对象的`generate`方法,传入处理后的文本数据,就可以生成词云图了。可以使用`matplotlib`包来显示和保存词云图。 绘制词云图Python代码如下所示: ```python import matplotlib.pyplot as plt from wordcloud import WordCloud # 读取文本文件 with open("text.txt", "r", encoding="utf-8") as f: text = f.read() # 文本处理步骤... # 创建词云对象 wordcloud = WordCloud(width=800, height=400, background_color="white").generate(text) # 显示词云图 plt.imshow(wordcloud, interpolation="bilinear") plt.axis("off") plt.show() # 保存词云图 wordcloud.to_file("wordcloud.png") ``` 以上就是使用Python绘制词云图的简单过程。通过调整词云的属性和文本处理步骤,我们可以得到不同风格和内容的词云图词云图可以帮助我们更好地理解文本的特征和重点。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值