具有绝对字长的词云
Wordclouds with absolute word sizes
我正在尝试制作几个词云来比较术语,这些术语本身嵌套在组中。我想为每组制作一个词云。 R中的wordcloud
包可以制作我需要的词云,但是每个新词云的词的大小都是相对缩放到最大和最小词频。这可以通过 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
这是我从上面的命令中得到的当前词云,运行 在 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))
我正在尝试制作几个词云来比较术语,这些术语本身嵌套在组中。我想为每组制作一个词云。 R中的wordcloud
包可以制作我需要的词云,但是每个新词云的词的大小都是相对缩放到最大和最小词频。这可以通过 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
这是我从上面的命令中得到的当前词云,运行 在 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))