R可视化学习—词云图

简介: 词云。又称文字云。“词云”就是通过形成“关键词云层”或“关键词渲染”,对网络文本中出现频率较高的“关键词”的视觉上的突出,它会过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。

我们这次介绍下如何利用R中的wordcloud2包绘制词云图文档链接,这个包为之前的wordcloud包提供了一个用于数据可视化的HTML5接口。

Begin

安装包


require(devtools)
install_github("lchiffon/wordcloud2")

准备数据


> head(demoFreq)
         word freq
oil       oil   85
said     said   73
prices prices   48
opec     opec   42
mln       mln   31
the       the   26

简单出图


library(wordcloud2)
wordcloud2(data = demoFreq)

e60a97ab8a6768515aff3817b1dc368.png

核心函数就是这个wordcloud2,我们看下这个函数中有哪些参数。

  • data
    准备像上面demoFreq数据集那样的数据框
  • size
    字体大小,默认为1
  • fontFamily
    字体种类
  • fontWeight
    使用的字体粗细,如普通、粗体或600
  • color
    文本的颜色,关键字“random-dark”和“random-light”可以使用。该参数还支持颜色向量
  • backgroudColor
    背景色
  • minRotation
    文本的最小旋转角度。
  • shape(常用)
    词云形状调节。可用的形状有“圆形”(默认)、“心形”(苹果或心形曲线,最著名的极坐标方程)、“菱形”、、“三角形”、“五边形”和“星形”。
    ..... (更多参数?wordcloud查看吧)

示例

设置背景,颜色,形状看下效果


wordcloud2(demoFreq, color = "random-light", backgroundColor = "pink",shape = 'star')

cf10e81d2b1c33528807620b4f10fac.png

文字旋转一下


wordcloud2(demoFreq, minRotation = -pi/6, maxRotation = -pi/6, minSize = 10,
  rotateRatio = 1)

bd1c23a0f791bf98414c4bd18e53f5f.png

自定义图片背景

  • 准备一张照片,注意:必须是黑白的照片
    d8e07d820094751d777cb925721f28d.png
  • 作图如下


# 图片ma.png保存在当前的目录下
wordcloud2(demoFreq, figPath = ‘ma.png’, size = 1.5)

071198c393b7313bbbc26905a788b03.png

注意问题:

在这一步大家可能会遇到一个问题无论怎么设置出图是没有颜色的一直是原始黑白图形。google了一番链接发现原来wordcloud2包在2018年1月3号后就无法再进行自定义词云图绘制了,若要使用只能安装低版本的包去使用,OK,那也很容易,重新安装下就是了。

解决方法:

1. 去Cran上下载0.2.0的包
网址:https://cran.r-project.org/src/contrib/Archive/wordcloud2/

072dc476356415c3109ff2cf3d9d7fa.png

然后我们本地安装R包即可。

a4c6802f7f7307c4027475c255c0b99.png

2. 另一种方法,使用wherepackage包查询安装,这个包可以安装Cran上任何版本的R包,这里我们先用,以后有时间写R包安装时再作讨论,想学习的可先去Github看看,Y叔公众号之前也有介绍过。


#安装
install.packages('wherepackage')
# 或者
remotes::install_github('yikeshu0611/wherepackage')
library('wherepackage')
#加载Cran上的包
d = loadData()
# 查询wordcloud2包Cran上发行的版本
where(data = d,packages = c('wordcloud2'))
    package  source       version      mtime
1 wordcloud2 Archive         0.2.0 2016-07-25
2 wordcloud2    CRAN current:0.2.1 2018-01-03
#安装
remotes::install_version('wordcloud2','0.2.0')

我们通过以上的代码发现现在电脑上装的是v0.2.1版本的,若要使用我们需要装回0.2.0版本,直接remotes::install_version('wordcloud2','0.2.0')即可。

使用字体做背景

这里主要是利用另外一个核心函数letterCloud,同样参数不再过多介绍,直接?letterCloud自己看吧


letterCloud(demoFreq, word = "R", size = 2)

7dfe9587b547089a4bfef96c7958e4a.png


letterCloud(demoFreq, word = "WORDCLOUD2", wordSize = 1)

d95ec66fb08d60ac0a9b63aa133fcc0.png

中文词云使用

我们可以仿照上面词云文件制作个中文数据表,比如你的LOL英雄使用场次做个词云图。导入中文文件时候注意加上fileEncoding = ‘utf8’参数防止你的文件导入后乱码。

输入文件格式:

9225136518a868f8b9934633e732afe.png

作图


data <- read.table('data.txt', row.names = 1, header = T,fileEncoding = 'utf8')
# 频率从大到小排序
data <- arrange(data,desc(freq)) 
wordcloud2(data, size = 1, shape='cardioid',color = 'random-dark', backgroundColor = "pink",fontFamily = "微软雅黑")

7fe235bc43a5dd9b8199541bfc13982.png

在线词云网站

对写代码不太熟悉的同学这里也有一些国内外在线词云图的网站推荐,也可以试试,使用无非都是输入频率文件生成图行,有的我也没有用过,大家自行探索吧~~~

简单看几个:

WordArt

a7d71fe61bb6e14485fabf9174cdf7e.png

ToCloud

6033b2c984300c87ff7cd12aa2e28be.png

图悦

image.png

相关文章
|
人工智能 数据可视化 Go
R绘图实战|GSEA富集分析图
GSEA(Gene Set EnrichmentAnalysis),即基因集富集分析,它的基本思想是使用预定义的基因,将基因按照在两类样本中的差异表达程度排序,然后检验预先设定的基因集合是否在这个排序表的顶端或者底端富集。
2466 0
R绘图实战|GSEA富集分析图
|
2月前
|
机器学习/深度学习 自然语言处理 数据可视化
用Python分析文本数据的词频并词云图可视化
用Python分析文本数据的词频并词云图可视化
73 0
|
1天前
|
数据可视化
R语言动态图可视化:如何、创建具有精美动画图
R语言动态图可视化:如何、创建具有精美动画图
|
11天前
|
数据可视化
R语言动态图可视化:如何、创建具有精美动画的图
R语言动态图可视化:如何、创建具有精美动画的图
|
10天前
|
数据可视化
R语言用igraph绘制网络图可视化
R语言用igraph绘制网络图可视化
16 0
|
4月前
|
数据可视化
Tableau可视化设计案例-03基本表、树形图、气泡图、词云
Tableau可视化设计案例-03基本表、树形图、气泡图、词云
|
8月前
|
数据可视化
R语言数据可视化-词云图
R语言数据可视化-词云图
74 0
|
8月前
|
数据可视化 数据挖掘
R语言数据可视化-气泡图
气泡图(Bubble Chart)是一种展示三个或更多变量之间关系的二维图表。它与散点图类似,但是在每个数据点处加上了一个圆圈,圆圈的大小和第三个变量相关。因此气泡图不仅可以用于显示两个变量之间的关系,还可以同时显示第三个变量的大小或重要性,增加了数据展示的可读性和信息量。
253 0
|
10月前
|
数据采集 数据可视化
|
10月前
|
数据可视化
R可视化学习(5) -- 脊线图
Ridgeline 图(脊线图),(有时称为Joyplot)可以同时显示几个组的数值分布情况,分布可以使用直方图或密度图来表示,它们都与相同的水平尺度对齐,并略有重叠。常常被用来可视化随时间或空间变化的多个分布/直方图变化。
171 0
R可视化学习(5) -- 脊线图