推广 热搜: 公司  快速  上海  中国  未来    企业  政策  教师  系统 

Python词云图的几种制作方法

   日期:2024-10-31     作者:caijiyuan    caijiyuan   评论:0    移动:http://keant.xrbh.cn/news/11662.html
核心提示:一、词云图 词云图是一种用来展现高频关键词的可视化表达,通过文字、色彩、图形的搭配,产生有冲击力地视觉效果&#x

一、词云图
词云图是一种用来展现高频关键词的可视化表达,通过文字、色彩、图形的搭配,产生有冲击力地视觉效果,而且能够传达有价值的信息。
词云就是通过形成“关键词云层”或“关键词渲染”,对网络文本中出现频率较高的“关键词”的视觉上的突出。
词云图过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。
本文通过对已获取的京东商品评论数据进行预处理、文本分词、词频统计、词云展示,熟悉制作词云的基本方法。
二、wordcloud库绘制词云
wordcloud是优秀的词云展示第三方库

Python词云图的几种制作方法

可以在命令行通过pip安装

pip install wordcloud -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
复制
wordcloud库把词云当作一个WordCloud对象

wordcloud.WordCloud( ) 代表一个文本对应的词云
可以根据文本中词语出现的频率等参数绘制词云
绘制词云的形状,尺寸和颜色都可以设定
配置对象参数

代码实现

import jieba
import collections
import re
from wordcloud import WordCloud
import matplotlib.pyplot as plt

new_data = re.findall(’[一-龥]+’, data, re.S)
new_data = " ".join(new_data)

word_counts_top100 = word_counts.most_common(100)
print(word_counts_top100)

my_cloud = WordCloud(
background_color=‘white’, # 设置背景颜色 默认是black
width=900, height=600,
max_words=100, # 词云显示的最大词语数量
font_path=‘simhei.ttf’, # 设置字体 显示中文
max_font_size=99, # 设置字体最大值
min_font_size=16, # 设置子图最小值
random_state=50 # 设置随机生成状态,即多少种配色方案
).generate_from_frequencies(word_counts)

plt.imshow(my_cloud, interpolation=‘bilinear’)

plt.axis(‘off’)
plt.show()
复制
词云图

三、pyecharts库的WordCloud绘制词云
pyecharts是基于echarts的python库,能够绘制多种交互式图表,和其他可视化库不一样,pyecharts支持链式调用。

也就是说添加图表元素、修改图表配置,只需要简单的调用组件即可。

class WordCloud(
# 初始化配置项,参考
init_opts: opts.InitOpts = opts.InitOpts()
)
复制

def add(
# 系列名称,用于 tooltip 的显示,legend 的图例筛选。
series_name: str,


	

)
复制
代码实现

import jieba
import collections
import re
from pyecharts.charts import WordCloud
from pyecharts.globals import SymbolType
from pyecharts import options as opts
from pyecharts.globals import ThemeType, CurrentConfig

CurrentConfig.ONLINE_HOST = ‘D:/python/pyecharts-assets-master/assets/’

new_data = re.findall(’[一-龥]+’, data, re.S) # 只要字符串中的中文
new_data = " ".join(new_data)

word_counts_top100 = word_counts.most_common(100)

print(word_counts_top100)

word1 = WordCloud(init_opts=opts.InitOpts(width=‘1350px’, height=‘750px’, theme=ThemeType.MACARONS))
word1.add(‘词频’, data_pair=word_counts_top100,
word_size_range=[15, 108], textstyle_opts=opts.TextStyleOpts(font_family=‘cursive’),
shape=SymbolType.DIAMOND)
word1.set_global_opts(title_opts=opts.TitleOpts(‘商品评论词云图’),
toolbox_opts=opts.ToolboxOpts(is_show=True, orient=‘vertical’),
tooltip_opts=opts.TooltipOpts(is_show=True, background_color=‘red’, border_color=‘yellow’))
word1.render(“商品评论词云图.html”)
复制
词云图

用pyecharts绘制的词云图渲染在网页上,具有交互效果,还有很多的配置参数可以设置让词云图看起来更美观。

四、stylecloud库绘制词云

  1. stylecloud简介
    对自己而言,平时用python制作词云主要使用wordcloud,如果在可视化的过程还要用pyecharts绘制其他图,那么词云也干脆就用pyecharts制作了。stylecloud也是一个python绘制词云的包,是一位数据科学家Max Woolf基于wordcloud优化改良而成。并添加了一些更有用的功能,从而让使用者更易创作出独特并且颜值颇高的词云。

安装

pip install stylecloud -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
复制
stylecloud具有以下特点

为词云提供(任意大小)的图标形状(通过 Font Awesome 5.11.2 获得
支持高级调色板(通过 palettable 实现
为上述调色板提供直接梯度
支持读取文本文件,或预生成的 CSV 文件(包含单词和数字
提供命令行接口
2. 蒙版图片
影响词云颜值的问题之一就是蒙版图片的生成。

自己制作的蒙版图片要么分辨率不统一,要么需要调整对比度,比较麻烦,stylecloud是直接使用Font Awesome这个现成的方案。

网址链接:https://fontawesome.com/license/free

在stylecloud static的文件夹下,有一个 fontawesome.min 的css文件包含了大量的图标,打开查看里面的内容,发现其中包含很多图标的代码。

这种层叠样式表,咱也看不懂、也不知道咋用呀,多亏有中文网站分门别类罗列了图标的样子和名字。

比如:https://fa5.dashgame.com/#/%E5%9B%BE%E6%A0%87 里面有详细的图标介绍和分类

使用方法如下

比如要使用苹果商标的蒙版图片,样式前缀 fab,以 fa-为前缀的名称 fa-apple,设置icon_name参数,icon_name='fab fa-apple’即可。

  1. 配色
    配色是影响词云颜值的又一大问题。stylecloud同样找到了比较好的方案,配色方案使用高级调色板palettable来实现。

palettable 网站:https://jiffyclub.github.io/palettable/

我们可以通过修改参数 palette=‘配色方案’ 来达到更改自己词云配色的目的。

  1. 绘制词云
    from stylecloud import gen_stylecloud
    import jieba
    import re
    import random

with open(‘datas.txt’, encoding=‘utf-8’) as f:
data = f.read()

new_data = re.findall(’[一-龥]+’, data, re.S)
new_data = “/”.join(new_data)

with open(‘palettable配色方案.txt’) as f:
choices = f.read().split(’ ’)[:-1]
print(choices)

gen_stylecloud(
text=’ ‘.join(result_list), # 文本数据
size=600, # 词云图大小
font_path=r’‪C:WindowsFontsmsyh.ttc’, # 中文词云 显示需要设置字体
output_name=‘词云.png’, # 输出词云图名称
icon_name=‘fas fa-grin-beam’, # 图标
palette=random.choice(choices) # 随机选取配色方案

)
复制
运行效果如下

gen_stylecloud() 主要参数如下

text:输入文本,最好在直接调用函数时使用。
file_path:输入文本/CSV 的文件路径
icon_name:stylecloud 形状的图标名称(如 fas fa-grin-beam),default: fas fa-flag
palette:控制调色方案,stylecloud的调色方案调用了palettable,这是一个非常实用的模块,其内部收集了数量惊人的大量的经典调色方案,默认为 cartocolors.qualitative.Bold_5
output_name:stylecloud 的输出文本名。default: stylecloud.png
gradient:梯度方向,(其默认值是 None,如果它的值不是 None,则 stylecloud 使用了方向性梯度)default: None
size:控制输出图像文件的分辨率(因为stylecloud默认输出方形图片,所以size传入的单个整数代表长和宽),默认为512
font_path:stylecloud 所用字体 .ttf 文件的路径。default: uses included Staatliches font
random_state:控制单词和颜色的随机状态
background_color:字符串,控制词云图底色,可传入颜色名称或16进制色彩,默认为 white
max_font_size:stylecloud 中的最大字号 default: 200
max_words:stylecloud 可包含的最大单词数 default: 2000
stopwords:bool型,控制是否开启去停用词功能,默认为True,调用自带的英文停用词表
custom_stopwords:传入自定义的停用词List,配合stopwords共同使用

觉得文章对你有帮助、让你有所收获的话,期待你的点赞呀,不足之处,也可以在评论区多多指正。

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与

本文分享自作者个人站点/博客
https://blog.csdn.net/fyfugoyfa
复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。

Python数据可视化
文章来自专栏
Python进阶之路
195 篇文章28 人关注
订阅
评论 (0)
写评论
暂无人发表评论

相关文章
数据可视化|如何用wordcloud绘制词云图
词云图中的每个字的大小与出现的频率或次数成正比,词云图的统计意义不是特别大,主要是为了美观,用于博客和网站比较常见。

python数据可视化——词云
词云百度百科:“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一…

拿来就用能的Python词云图代码|wordcloud生成词云详解
词云也叫文字云,是一种可视化的结果呈现,常用在爬虫数据分析中,原理就是统计文本中高频出现的词,过滤掉某些干扰词,将结果生成一张图片,直观的获取数据的重点信息。今…

python pyecharts数据可视化 词云图 仪表盘 水球图
词云就是通过形成关键词云层或关键词渲染,过滤掉大量的文本信息,对网络文本中出现频率较高的关键词的视觉上的突出。

利用简书首页文章标题数据生成词云1.词云图2.推荐几个不错的词云图工具3.爬取数据,制作词云图
词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨。

excel也那绘制词云图哦!还有很多的可视化图表可挑选
excel是老牌的数据可视化软件了,很多方面都已经很完美了,很多的图表都可以轻松绘制出来,但如果想要做的好看,就需要一些技巧了。

本文地址:http://lianchengexpo.xrbh.cn/news/11662.html    迅博思语资讯 http://lianchengexpo.xrbh.cn/ , 查看更多
 
标签: 制作方法
 
更多>同类行业资讯
0相关评论

新闻列表
企业新闻
推荐企业新闻
推荐图文
推荐行业资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号