r - 具有绝对字长的词云

标签 r word-cloud

我正在尝试制作几个词云来比较术语,这些术语本身嵌套在组中。我想为每组制作一个 wordcloud。 wordcloud R中的包可以制作我需要的词云,但是每个新词云都有相对于最大和最小词频缩放的单词大小。这可以通过 scale 设置范围。

我的目标是制作词云,其中词的大小与词的频率绝对相关,从而可以直观地比较不同的词云。

library(wordcloud)
dat <- data.frame(word = rep(LETTERS[1:3], 2), freq =  c(10, 5, 3, 20, 10, 6), group = c(1, 1, 1, 2, 2, 2))

dat
#  word freq group
#1    A   10     1
#2    B    5     1
#3    C    3     1
#4    A   20     2
#5    B   10     2
#6    C    6     2

wordcloud(dat$word[dat$group == 1], dat$freq[dat$group == 1]) 
wordcloud(dat$word[dat$group == 2], dat$freq[dat$group == 2]) # Currently the same

Current wordcloud

这是我从上述命令中获得的当前 wordcloud,在 MWE 中的两个组上运行(尽管每次运行的确切位置会随机变化)。我希望第二组 wordcloud 中的每个字母都比第一个大两倍,与数据一致(或者有一些合理的比例差异,即使它不是线性的)。

如何做到这一点?

最佳答案

嗯,这可能是一个迂回的方式。但是,如果我们使用单个 anchor 为所有数据设置比例会怎样。

anchor <- max(dat$freq)
wordcloud(dat$word[dat$group == 1], dat$freq[dat$group == 1], scale = c(8*max(dat$freq[dat$group == 1])/anchor, 0.5))
wordcloud(dat$word[dat$group == 2], dat$freq[dat$group == 2], scale = c(8*max(dat$freq[dat$group == 2])/anchor, 0.5))

关于r - 具有绝对字长的词云,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37275220/

相关文章:

r - 使用 Lubridate 将 R 中的字符列转换为日期

r - 提取树状图或集群中节点的层次结构

r - Shiny 和推特的例子

python-3.x - 非英语语料的词云

r - 在 r 中传递 figPath 参数时,Webshot() 无法与 wordcloud2() 一起使用。

Python:wordcloud,重复的词

r - 如何增加 R 中绘制区域词云的大小

r - 如何在某些 R 函数中隐式调用列

Rcpp 没有匹配的函数来调用abs

r - 使用 ddply 汇总 R 中的总和和均值