Wordclouds绝对字大小

我正在尝试制作几个wordcloud来比较术语,这些术语本身嵌套在组内.我想为每组制作一个单词云. R中的wordcloud包可以生成我需要的wordcloud,但是每个新的wordcloud都具有相对于最大和最小单词频率缩放的单词的大小.这可以使用scale参数进行设置.

我的目标是制作wordclouds,其中单词的大小与单词的频率绝对相关,从而可以在视觉上比较不同的wordcloud.

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

《Wordclouds绝对字大小》

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

怎么能实现这一目标?

最佳答案 嗯,这可能是一种迂回的方式.但是,如果我们使用单个锚设置所有数据的比例,该怎么办?

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))
点赞