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

相关文章
|
10月前
|
监控 安全 开发工具
鸿蒙HarmonyOS应用开发 | HarmonyOS Next-从应用开发到上架全流程解析
HarmonyOS Next是华为推出的最新版本鸿蒙操作系统,强调多设备协同和分布式技术,提供丰富的开发工具和API接口。本文详细解析了从应用开发到上架的全流程,包括环境搭建、应用设计与开发、多设备适配、测试调试、应用上架及推广等环节,并介绍了鸿蒙原生应用开发者激励计划,帮助开发者更好地融入鸿蒙生态。通过DevEco Studio集成开发环境和华为提供的多种支持工具,开发者可以轻松创建并发布高质量的鸿蒙应用,享受技术和市场推广的双重支持。
1445 11
|
自然语言处理 数据可视化 机器人
如何画一个词云 | python小知识
词云,又称文字云,是文本数据的视觉表示,通过将网络文本或大量文本数据中出现频率较高的“关键词”以不同大小的字体、颜色或形状进行可视化展示,形成类似云的彩色图形。这种视觉上的突出使得浏览者能够一眼扫过文本就领略到文本的主旨,是数据可视化的一种重要形式 【7月更文挑战第6天】
413 0
|
Kubernetes Docker 容器
Rancher创建集群并进行简单的部署
Rancher创建集群并进行简单的部署
274 1
|
Linux Perl
Linux命令split的使用方法说明
【6月更文挑战第11天】Linux命令split的使用方法说明
431 4
|
人工智能
简单利用AI工具生成动漫头像
【7月更文挑战第14天】简单利用AI工具生成动漫头像
|
数据采集 Dart Apache
Github 2024-05-07 Python开源项目日报 Top10
在2024年5月7日的Github Trendings中,Python开源项目占据主导,共有10个项目上榜。其中热门项目包括:yt-dlp,一个增强版的youtube-dl分支,具有64K+星标;Home Assistant,专注本地控制和隐私的开源家庭自动化项目,拥有65K+星标;以及openpilot,一个开源驾驶辅助系统,支持多种车型,45K+星标。其他项目涵盖爬虫工具、实时应用框架Flet、可观测性平台Logfire等,涉及Python、Dart和C++等多种语言。
750 10
|
消息中间件 监控 大数据
揭秘Kafka:大数据和流计算领域的高可用利器
**Kafka是分布式流处理平台,以高效、可伸缩和消息持久化著称。其高可用性通过分区和副本机制实现:每个分区有Leader和Follower副本,Leader处理请求,Follower同步数据。当Leader故障时,ZooKeeper协助选举新Leader,确保服务连续。Kafka适用于大数据处理、流计算和日志分析,但异步处理可能导致延迟,不适合极高实时性场景,并且管理和配置复杂。**
280 0
|
存储 运维 分布式计算
HDFS 如何容错?
【8月更文挑战第31天】
501 0
|
存储 算法 程序员
操作系统(12)----页面分配策略
操作系统(12)----页面分配策略
456 1
|
存储 大数据 Apache
深入理解ZooKeeper:分布式协调服务的核心与实践
【5月更文挑战第7天】ZooKeeper是Apache的分布式协调服务,确保大规模分布式系统中的数据一致性与高可用性。其特点包括强一致性、高可用性、可靠性、顺序性和实时性。使用ZooKeeper涉及安装配置、启动服务、客户端连接及执行操作。实际应用中,面临性能瓶颈、不可伸缩性和单点故障等问题,可通过水平扩展、集成其他服务和多集群备份来解决。理解ZooKeeper原理和实践,有助于构建高效分布式系统。