每每以为攀得众山小,可、每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~

———————————————————————————

笔者看到微信公众号探数寻理中提到郎大为Chiffon老师的wordcloud2,于是尝鲜准备用一下。但是在下载的时候,遇见很多问题,安装问题困扰着。。。

包中函数本身很好用,很简单,而且图形众多。

————————————————————————————————————————————

一、wordcloud2包的安装

官方郎大为老师github博客链接:https://github.com/Lchiffon/wordcloud2

老师的中文博客链接:http://lchiffon.github.io/2016/06/01/wordcloud2.html

官方下载方法:

install.packages('devtools')
devtools::install_github("lchiffon/wordcloud2")

这里我是下载不了,出现以下的报错:

Downloading GitHub repo lchiffon/wordcloud2@master
from URL https://api.github.com/repos/lchiffon/wordcloud2/zipball/master
Error in curl::curl_fetch_memory(url, handle = handle) :
  Problem with the SSL CA cert (path? access rights?)

然后借鉴了博客(安装包(上传数据)失败时的解决方法),

library(RCurl)
library(httr)
set_config( config( ssl_verifypeer = 0L ) )

解决了curl这个问题。但是又出现报错:

Error in read.dcf(file.path(pkgname, "DESCRIPTION"), c("Package", "Type")) :
  无法打开链结

于是找到了R-3.3.0中一个叫jsonlite的包,删除并重新安装之后。直接devtools::install_github("lchiffon/wordcloud2")就可以顺利安装成功了。

问题的关键可能是:jsonlite这个包以及curl中的一些设置。

————————————————————————————————————————————

二、wordcloud2函数说明

wordcloud2(data, size = 1, minSize = 0, gridSize =  0,
    fontFamily = NULL, fontWeight = 'normal',
    color = 'random-dark', backgroundColor = "white",
    minRotation = -pi/4, maxRotation = pi/4, rotateRatio = 0.4,
    shape = 'circle', ellipticity = 0.65, widgetsize = NULL)

常用参数:

(1)data:词云生成数据,包含具体词语以及频率;

(2)size:字体大小,默认为1,一般来说该值越小,生成的形状轮廓越明显;

(3)fontFamily:字体,如‘微软雅黑’;

(4)fontWeight:字体粗细,包含‘normal’,‘bold’以及‘600’;;

(5)color:字体颜色,可以选择‘random-dark’以及‘random-light’,其实就是颜色色系;

(6)backgroundColor:背景颜色,支持R语言中的常用颜色,如‘gray’,‘blcak’,但是还支持不了更加具体的颜色选择,如‘gray20’;

(7)minRontatin与maxRontatin:字体旋转角度范围的最小值以及最大值,选定后,字体会在该范围内随机旋转;

(8)rotationRation:字体旋转比例,如设定为1,则全部词语都会发生旋转;

(9)shape:词云形状选择,默认是‘circle’,即圆形。还可以选择‘cardioid’(苹果形或心形),‘star’(星形),‘diamond’(钻石),‘triangle-forward’(三角形),‘triangle’(三角形),‘pentagon’(五边形);

————————————————————————————————————————————

三、官方包中的几个案例

1、案例一:星星图

library(wordcloud2)
wordcloud2(demoFreq, size = 1,shape = 'star')



案例二:中文词云

wordcloud2(demoFreqC, size = 2, fontFamily = "微软雅黑",
           color = "random-light", backgroundColor = "grey")



案例三:

wordcloud2(demoFreq, size = 2, minRotation = -pi/2, maxRotation = -pi/2)



案例四:

wordcloud2(demoFreq, size = 2, minRotation = -pi/6, maxRotation = -pi/6,
  rotateRatio = 1)



案例五:浩彬老撕的高考案例

数据来源:链接: http://pan.baidu.com/s/1jI4gEnc 密码: uids

data <- read.csv('c:/data.csv', sep="," ,header = T)
#读取原始数据
data
#检查数据,查看是否存在乱码的情况
wordcloud2(data, size = 1, shape='star',color = 'random-dark',
backgroundColor = "white",fontFamily = "微软雅黑")
#绘制文字云,其中data就是我们读取的数据,size是对应文字大小,shape是绘制形状



案例六:浩彬老撕的高考案例

wordcloud2(demoFreqC, size = 1,color = 'random-light',
backgroundColor = "gray", fontWeight='bold',fontFamily = "微软雅黑",
minRotation = -pi/3, maxRotation = pi/3,rotateRatio = 0.8)

在上面例子,我们重新设定了字体为粗体,字体旋转角度在正负60度之间,旋转比例为80%。

——————————————————————————————————————————————————————————

6月12日更新——自定义图片+文字云

从浩彬老师公众号,看到wordcloud2更新了自定义图片形状、文字词云形状。

已经安装过wordcloud2包的童鞋,因为已经更新了,所以需要重新安装。

install.packages('devtools')
devtools::install_github("lchiffon/wordcloud2")

1、自定义图片代码

batman = system.file("examples/batman.png",package = "wordcloud2")
###读取形状图片,注意图片默认放在wordclou2的sample包中,浩彬老撕的路径如下:"d:/Program Files/R/R-3.3.0/library/wordcloud2/examples/batman.png"
wordcloud2(demoFreq, figPath = batman, size = 1,color = "black")
###绘制云此图,其中demoFreg即为所用的数据,figPath = batman为所用图片

其中需要把图片,放到wordcloud2的examples包中,可以直接调用。

2、文字云

有些时候,我们除了需要自定义形状,可能也需要形成文字,这就需要用到wordcloud2中的新函数letterCloud

代码:

letterCloud(demoFreq, word = "高考", wordSize = 2,color = 'random-dark',backgroundColor = "snow")
###其中demoFreqC为需要用的词语以及词频数据,word是需要可视化的文字


————————————————————————————————————————————————————————

应用一:报错Error in gsub

Error in gsub("</", "\\u003c/", payload, fixed = TRUE) :
  invalid multibyte string at '<88>,<32>3754","鍟婂晩","杩欎釜","鍠滄","浠€涔<88>,6390","鎴戠殑","鍙埍","鍝堝搱","鍗фЫ","寮瑰箷","鎬庝箞","涓€涓<aa>,4357","浣犱滑","琛ㄧ櫧","鎰熻","杩欎箞","鍙互","娌℃湁","瑙夊緱","鍓嶉潰","閭d釜","鐭ラ亾","涓轰粈涔<88>,2586","鑷繁","杩欐牱","濂界湅","鐪嬪埌","鎵垮寘","鍑烘潵","濂藉儚","涓€鐩<b4>,2051","鍘夊浜<86>,2007","寮€濮<8b>,1975","鎴戜滑","鑰佽強","鑰佸笀","杩欓噷","宸茬粡","鐜板湪","鏃跺€<99>,1739","澹伴煶","濡瑰瓙","鍝ュ摜","鍘夊浜嗘垜鐨<84>,1586","鑰佸﹩","姝ょ敓","鏈夌偣","涓€鏍<b7>,1497","琛ㄧず","蹇冪柤","璁告効","鐪熺殑","閭d箞","涓嶉敊","绛夌瓑","鍒蛋","涓嶈兘","杩欑","纭竵","鍘夊","濂藉ソ","鎵€浠<a5>,1234","瀛楀箷","涓浗","鍏跺疄","娓告垙","鍥犱负","灞呯劧","涓€璧<b7>,1168","澶у","浠ヤ负","搴旇","璧锋潵","涓€涓<8b>,1132","涓嶈","灏村艾","濂崇","鍥炴潵","涓栫晫","瀛╁瓙","濡傛灉","鍗佸厓","琛f湇","鍙戠幇","涓轰簡","濡堝","鐖哥埜","鍚堝奖","浣嗘槸","瑙嗛","绯诲垪","濮愬","婕備寒","绗竴

笔者在尝试wordcloud2的时候,本来是从来没有遇到过报错问题,但是公司电脑里面是低版本的R(3.1),随后就出现了这样的报错, 是格式问题,需要把中文格式转化为UTF8才能塞入wordcloud2当中。

于是笔者也在低版本下尝试了很多种可能性譬如:

1、强行转化格式成UTF8,变成了一对文字乱码;

2、导出后转化为UTF8格式,导出没问题,但是导入的时候出现了一堆乱码的情况,还是失败;

于是乎,换了高版本的R之后,问题自然而然就解决了...  原因呢,笔者自然是不知道为什么...

来看看官方、作者的解决方案:

方法一:将文字转化为UTF-8

方法二:使用前先:Sys.setlocale("LC_CTYPE","eng")

笔者应用方法二完美解决问题了

每每以为攀得众山小,可、每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~

———————————————————————————

R语言︱文本挖掘——词云wordcloud2包的更多相关文章

  1. R语言文本挖掘+词云显示(jiebaR包+wordcloud2包)

    利用2018年政府工作报告的例子向大家展示一下R语言如何进行文本挖掘的~用到的包有jiebaR和wordcloud2. 1.安装并加载jiebaR install.packages("jie ...

  2. R语言进行词云统计分析

    R语言进行词云统计分析 本文章从爬虫.词频统计.可视化三个方面讲述了R语言的具体应用,欢迎大家共同谈论学习 1.使用 rvest 进行数据的爬取 #如果没有,先安装rvest包 install.pac ...

  3. R语言︱文本挖掘之中文分词包——Rwordseg包(原理、功能、详解)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:与前面的RsowballC分词不同的 ...

  4. R语言·文本挖掘︱Rwordseg/rJava两包的安装(安到吐血)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- R语言·文本挖掘︱Rwordseg/rJava ...

  5. R语言之词云:wordcloud&wordcloud2安装及参数说明

    一.wordcloud安装说明 install.packages("wordcloud"); 二.wordcloud2安装说明 install.packages("dev ...

  6. R语言︱文本挖掘套餐包之——XML+SnowballC+tm包

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- R语言︱文本挖掘套餐包之--XML+tm+Sn ...

  7. R语言-文本挖掘

    ---恢复内容开始--- 案例1:对主席的新年致辞进行分词,绘制出词云 掌握jieba分词的用法 1.加载包 library(devtools) library(tm) library(jiebaR) ...

  8. R语言数据分析利器data.table包—数据框结构处理精讲

    R语言数据分析利器data.table包-数据框结构处理精讲 R语言data.table包是自带包data.frame的升级版,用于数据框格式数据的处理,最大的特点快.包括两个方面,一方面是写的快,代 ...

  9. R语言入门级实例——用igragh包分析社群

    R语言入门级实例——用igragh包分析社群 引入—— 本文的主要目的是初步实现R的igraph包的基础功能,包括绘制关系网络图(social relationship).利用算法进行社群发现(com ...

随机推荐

  1. 10_set集合

    一.集合类型 集合是一组无序排列的可哈希的值(可哈希的值->不可变),集合成员可以做字典中的键.但集合本身是不可哈希的. 集合是无序没有索引,也没有像字典的key,所以集合不能更改元素.只能增删 ...

  2. Yii框架中使用mongodb扩展

    前提条件:安装了mongodb数据库 安装了mongo的php驱动 下载Yii的mongo扩展:这是YiiMongoDbSuite的1.3.6版本支持PHP Mongo驱动的版本为1.0.5及以下 下 ...

  3. ABP官方文档翻译 3.1 实体

    实体 实体类 聚合根类 领域事件 常规接口 审计 软删除 激活/失活实体 实体改变事件 IEntity接口 实体是DDD(领域驱动设计)的核心概念之一.Eric Evans描述它为"An o ...

  4. UOJ Round #15 [构造 | 计数 | 异或哈希 kmp]

    UOJ Round #15 大部分题目没有AC,我只是水一下部分分的题解... 225[UR #15]奥林匹克五子棋 题意:在n*m的棋盘上构造k子棋的平局 题解: 玩一下发现k=1, k=2无解,然 ...

  5. Linux 常用命令 (common commands for linux)

    Linux 常用命令 (Common Commands For Linux) 1.声明,此文章仅写基于 Bash shell 常用的命令,如果遇上命令在使用过程中提示没有,可能随着更新,命令也被替换掉 ...

  6. 蛋疼的_after_insert

    这两天在做一个素材类的网站,用的依旧是TP3.2,在做到发布话题这部分的时候,发现了一个问题,我在添加话题的时候在模型里写了个钩子函数_after_insert(),希望在新增话题数据之后同时将话题的 ...

  7. 新版Azure Automation Account 浅析(三) --- 用Runbook管理AAD Application Key

    新版Azure Automation Account 浅析(三) --- 用Runbook管理AAD应用的Key 前篇讲过有一个面向公众的Runbook库,社区和微软一直往其中加入新的Runbook, ...

  8. zend framework框架学习走起——从零开始,点击记录-安装

    zend framework第一步,先来安装下zend framework框架. 先介绍下,我这边的php配置环境,为图省事,我是安装wampserver来搭载php环境的,,php+Apache+m ...

  9. Python面向对象篇(2)-继承

    在发表本篇随笔的时候,距离上一次发已经有一个多月了,很多朋友私信我为什么不持续更新了,在这里先跟大家说声抱歉.因为年底的工作较为繁重,实在分不出精力,更重要的也是在思考后面进阶的部分要按怎样的顺序写, ...

  10. Wpf DataGridCheckBoxColumn 问题

    使用DataGridCheckBoxColumn  binding一个布尔属性时,发现无法checkbox无法勾选, 并且HeaderTemplate中的checkbox无法获取到viewmodel的 ...