推广 热搜: 行业  设备    系统  参数  经纪    教师  机械  中国 

python词云图素材_用Python制作酷炫词云图,原来这么简单!

   日期:2024-11-18     作者:xasic    caijiyuan   评论:0    移动:http://dgaty.xhstdz.com/mobile/news/7209.html
核心提示:一、简介词云图是文本挖掘中用来表征词频的数据可视化图像,通过它可以很直观地展现文本数据中地高频词:!图1 词云图示例在Pyth

一、简介

python词云图素材_用Python制作酷炫词云图,原来这么简单!

词云图是文本挖掘中用来表征词频的数据可视化图像,通过它可以很直观地展现文本数据中地高频词:!

图1 词云图示例

在Python中有很多可视化框架可以用来制作词云图,如pyecharts,但这些框架并不是专门用于制作词云图的,因此并不支持更加个性化的制图需求,要想创作出更加美观个性的词云图,需要用到一些专门绘制词云图的第三方模块,本文就将针对其中较为优秀易用的wordcloud以及stylecloud的用法进行介绍和举例说明。

二、利用wordcloud绘制词云图

wordcloud是Python中制作词云图比较经典的一个模块,赋予用户高度的自由度来创作词云图:

图2 wordcloud制作词云图示例

2.1 从一个简单的例子开始

这里我们使用到来自wordcloud官方文档中的constitution.txt来作为可视化的数据素材:

图3 constitution.txt

首先我们读入数据并将数据清洗成空格分隔的长字符串:

importre

withopen(‘constitution.txt’)asc:

‘’’抽取文本中的英文部分并小写化,并将空格作为分隔拼接为长字符串’’’

text =‘ ‘.join([word.group().lower()forwordinre.finditer(‘[a-zA-Z]+’, c.read())])

‘’’查看前100个字符’’’

text[:500]

图4 清洗后的片段文本

接着使用wordcloud中用于生成词云图的类WordCloud配合matplotlib,在默认参数设置下生成一张简单的词云图:

fromwordcloudimportWordCloud

importmatplotlib.pyplotasplt

%matplotlib inline

‘’’从文本中生成词云图’’’

wordcloud = WordCloud().generate(text)

plt.figure(figsize=[12,10])

plt.imshow(wordcloud)

plt.axis(‘off’)

plt.show()

生成的词云图:

图5 默认参数下的词云图

毕竟是在默认参数下生成的词云图,既丑陋又模糊,为了绘制好看的词云图,接下来我们来对wordcloud绘制词云图的细节内容进行介绍,并不断地对图5进行升级改造。

2.2 WordCloud

作为wordcloud绘制词云图最核心的类,WordCloud的主要参数及说明如下:

fontpath:字符型,用于传入本地特定字体文件的路径(ttf或otf文件)从而影响词云图的字体族

width:int型,用于控制词云图画布宽度,默认为400

height:int型,用于控制词云图画布高度,默认为200

prefer_horizontal:float型,控制所有水平显示的文字相对于竖直显示文字的比例,越小则词云图中竖直显示的文字越多

mask:传入蒙版图像矩阵,使得词云的分布与传入的蒙版图像一致

contour:float型,当mask不为None时,contour参数决定了蒙版图像轮廓线的显示宽度,默认为0即不显示轮廓线

contour_color:设置蒙版轮廓线的颜色,默认为’black’

scale:当画布长宽固定时,按照比例进行放大画布,如scale设置为1.5,则长和宽都是原来画布的1.5倍

本文地址:http://dgaty.xhstdz.com/news/7209.html    物流园资讯网 http://dgaty.xhstdz.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新文章
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新文章
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号