美文网首页收入即学习
R可视化学习—词云图

R可视化学习—词云图

作者: 凯凯何_Boy | 来源:发表于2020-09-24 14:20 被阅读0次

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

    我们这次介绍下如何利用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)
    
    图片.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')
    
    图片.png

    文字旋转一下

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

    自定义图片背景

    • 准备一张照片,注意:必须是黑白的照片


      图片.png
    • 作图如下

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

    注意问题:

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

    解决方法

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

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


    图片.png
    1. 另一种方法,使用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)
    
    图片.png
    letterCloud(demoFreq, word = "WORDCLOUD2", wordSize = 1)
    
    图片.png

    中文词云使用

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

    图片.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 = "微软雅黑") 
    
    
    图片.png

    在线词云网站

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

    简单看几个:

    WordArt

    图片.png

    ToCloud

    图片.png

    图悦

    图片.png

    相关文章

      网友评论

        本文标题:R可视化学习—词云图

        本文链接:https://www.haomeiwen.com/subject/wffsyktx.html