词云图,也叫文字云。“词云”这个概念由美国西北大学新闻学副教授、新媒体专业主任里奇·戈登(Rich Gordon)于近日提出。戈登做过编辑、记者,曾担任迈阿密先驱报(Miami Herald)新媒体版的主任。他一直很关注网络内容发布的最新形式——即那些只有互联网可以采用而报纸、广播、电视等其它媒体都望尘莫及的传播方式。通常,这些最新的、最适合网络的传播方式,也是最好的传播方式。 因此,“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。
因此词云图是一种非常好的数据可视化方式,能够让读者提高阅读效率。pyecharts包提供了WordCloud库,可以用来绘制词云图。要使用这个库作图,大致可以分为以下几步:
一、导入所用到的包体。这里我们需要使用到option包、Page包、WordCloud包、SymbolType包等等。注意导入的时候需要使用from import语句。
二、建立词云列表。这个里的每一个元素是一个元组(数据对),每一个元组包括需要展示词汇和这个词汇的权值。
三、编写词云生成函数。我们需要使用WorldClou()构建一个WorldCloud对象,然后使用add方法添加需要展示的词云列表和词云中每个单词的尺寸大小范围。另外需要通过.set_global_opts,进行参数(比如图的标题title)等的配置,毕竟一切皆配置。然后返回一个WorldCloud的数据类型。
四、调用该函数,然后使用.rend()方法进行渲染生成html文件。
from pyecharts import options as opts
from pyecharts.charts import Page, WordCloud
from pyecharts.globals import SymbolType
words = [
("Sam S Club", 10000),
("Macys", 6181),
("Amy Schumer", 4386),
("Jurassic World", 4055),
("Charter Communications", 2467),
("Chick Fil A", 2244),
("Planet Fitness", 1868),
("Pitch Perfect", 1484),
("Express", 1112),
("Home", 865),
("Johnny Depp", 847),
("Lena Dunham", 582),
("Lewis Hamilton", 555),
("KXAN", 550),
("Mary Ellen Mark", 462),
("Farrah Abraham", 366),
("Rita Ora", 360),
("Serena Williams", 282),
("NCAA baseball tournament", 273),
("Point Break", 265),
]
def wordcloud_base() -> WordCloud:
c = (
WordCloud()
.add("", words, word_size_range=[20, 100])
.set_global_opts(title_opts=opts.TitleOpts(title="WordCloud-基本示例"))
)
return c
wd = wordcloud_base()
wd.render()
我们打开生成的html文件,就可以看到词云图了。
参考资料:
http://pyecharts.org/#/zh-cn/basic_charts?id=wordcloud%ef%bc%9a%e8%af%8d%e4%ba%91%e5%9b%be