专栏首页R语言交流中心R语言实现网页版词云图的绘制

R语言实现网页版词云图的绘制

今天我们为大家介绍一个简单的词云图绘制的R包wordcloud2,这个包借助shiny框架实现了图像的可交互。废话不多说,接下来我们看下它的使用。

首先是包的安装,这个地方我们不得不说,建议使用devtools进行安装不然后面的自定义形状图形无法绘制:

library(devtools)

devtools::install_github("lchiffon/wordcloud2")

其中主要的核心函数是wordcloud2,其具体的参数如下:

(1) words—关键词列表

(2) freq—关键词对应的词频列表

(3) scale—字号列表。c(最大字号, 最小字号)

(4) min.freq—最小限制频数。低于此频数的关键词将不会被显示。

(5) max.words—限制词云图上关键词的数量。最后出现在词云图上的关键词数量不超过此限制。

(6) random.order—控制关键词在图上的排列顺序。T:关键词随机排列;F:关键词按频数从图中心位置往外降序排列,即频数大的词出现在中心位置。

(7) random.color—控制关键词的字体颜色。T:字体颜色随机分配;F:根据频数分配字体颜色。

(8) rot.per—控制关键词摆放角度。T:水平摆放;F:旋转90度。

(9) colors—字体颜色列表

(10) ordered.colors—T:按照指定的顺序给出每个关键词字体颜色F:任意给出字体颜色。

(11) hoverFunction—可以实现对鼠标放在对应的词上面所显示的内容,或者产生的动作。

(12) backgroundColor—绘图画布的背景颜色,可以自行设置,默认为白色。

(13)figPath—这是一个神器,可以让你的词云图按照你输入的图像的性状进行词的分布。

下面我们来看几个实例:

1. 基础的词云图绘制:

wordcloud2(demoFreq)

2. 我们修改词云图的形状,通过shape进行包自带的形状的转化:

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

3. 当然更高级性状转化那就是我们自定义了,当然作者为我们考虑到了我们可能需要一些字母的形状,所以它还提供了一个函数letterCloud帮我们将字母转化为图像:

letterCloud(demoFreq,"R")

接下来我们就用我们生成的这个形状进行我们词云图的绘制:

wordcloud2(demoFreq, figPath ="G:/5.png")#此处图形的外框还是使用的默认的圆形。

4. 最后的大招就是图形的交互体验,这个在这里我们没法去演示,给大家一个实例代码,这个代码主要是当我们将鼠标移动到一个词上时,就会显示我们输入的信息:

hoverFunction =htmlwidgets::JS("function onclick() {alert(‘欢迎大家学习交流’);}")

wordcloud2(demoFreq,hoverFunction =hoverFunction)

本文分享自微信公众号 - R语言交流中心(R_statistics),作者:one sand

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • R语言实现支持向量机(SVM)

    支持向量机(Support Vector Machine,SVM)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现...

    一粒沙
  • R语言制作可发表的生存曲线

    log.rank.weights 主要是选择P的计算方法。默认是1,指的Log-rank方法。其它还包括以下:

    一粒沙
  • R语言之列线图的绘制应用

    线图(AlignmentDiagram),又称诺莫图(Nomogram图),它是建立在多因素回归分析的基础上,将多个预测指标进行整合,然后采用带有刻度的线段,按...

    一粒沙
  • 如何在保留装箱对象的前提下修改值

    有人问如何在保留装箱对象的前提下修改值? 场景: object obj = 100; Console.WriteLine("original object va...

    葡萄城控件
  • 【JS】408- 看一看 JavaScript 引擎是什么

    如果您觉得自己对 JavaScript 引擎有了一些了解的话,可以先给自己鼓个掌,但不要急着关掉本文,我相信阅读完成后您仍然可以从中学到一些东西。

    pingan8787
  • [第2期] 揭开 JavaScript 引擎的面纱

    最初,JavaScript 只能在 Web 浏览器中运行,但是随着 Node 的出现,现在 JavaScript 也可以在服务端运行。虽然我们可能知道应该在何时...

    用户6900878
  • 开源成功十法则

    每个人都想要,不少人都在试,但是创造它的过程,说起来却都是泪。我说的是自由软件,又叫开源软件(译者注:本文重点不是辨析自由软件和开源软件的概念,作者如此说,姑且...

    逸鹏
  • 简单优雅的搭建个人博客

    啊啊啊~~~ ,经过差不多两天的持续摸索优化,个人博客算是初步完成了,现在自己看的效果还是非常不错的。这篇文章就是讲我怎么搭建一个这样的博客的。早在17年的时候...

    程序员爱酸奶
  • Python对数据库操作(以拉取股票入库为例)

    获取股票数据的时候我们采用的是baostack。您需要安装baostack的python包,除此之外我们采用的数据库驱动为pymysql,orm框架采用sqla...

    程序员_备忘录
  • 使用XML-RPC共享文件(2):再次实现

    SimpleXMLRPCServer.allow_reuse_address = 1

    不可言诉的深渊

扫码关注云+社区

领取腾讯云代金券