提问人:clara 提问时间:7/31/2023 最后编辑:neilfwsclara 更新时间:8/1/2023 访问量:41
词云,其权重在 R 中以颜色的大小和关系方向表示
Word cloud with weights represented in size and direction of relationship by colour in R
问:
我已经做了一个 PCA,我想创建一个词云,代表 PCA 组件不同维度(正或负)的权重和关系方向。 我在 R 中有这段代码
pca_loadings$colorRC1 <- ifelse(pca_loadings[,1] >= 0, 'red', 'blue')
pca_loadings$absRC1 <- abs(pca_loadings[,1])
wordcloud::wordcloud(words = pca_loadings$V5,
freq = pca_loadings$absRC1, scale = c(3,1),
min.freq = 0.3,
max.words = 20,
ordered.colors = T,
colors = pca_loadings$colorRC1,
rot.per = 0)
它有点工作。 是存储每个维度名称的位置,是组件 1 的每个维度的权重的绝对值。我希望截止值为 0.3,因此任何较小的内容都不包括在词云中。pca_loadings$V%
absRC1
为了使颜色根据它是正数还是负数而变化,我创建了一个名为该变量的变量,该变量基本上查看每个维度的权重,如果数字为 >0,则在该行中写入红色,如果<0,则写入蓝色。colorRC1
目前为止,一切都好。但是,由于最小阈值为 0.3,因此每当词云函数到达绝对值小于 0.3 的行时,它都会省略它,但不会跳过颜色行,因此列和颜色列不匹配。基本上在输出中,大小很好,但是由于每当值小于 0.3 时,它都不会跳过颜色列中的一行,因此数字的方向(正数或负数)与打印它们的颜色不匹配。absRC1
有谁知道如何解决这个问题?
答:
0赞
Till
8/1/2023
#1
我无权访问您的表,所以我正在创建
a 类似于此示例所需的功能。pca_loadings
data.frame
library(tidyverse)
pca_loadings <-
data.frame(
V5 = words[1:30],
RC1 = rnorm(30)
)
我们可以对颜色和绝对值进行修改,然后过滤掉以下值的行。dplyr::mutate()
0.3
dplyr::filter()
pca_loadings_mod <-
pca_loadings |>
mutate(colorRC1 = ifelse(RC1 >= 0, 'red', 'blue'),
absRC1 = abs(RC1)) |>
filter(absRC1 >= .3)
wordcloud::wordcloud(words = pca_loadings_mod$V5,
freq = pca_loadings_mod$absRC1, scale = c(3,1),
max.words = 20,
ordered.colors = TRUE,
colors = pca_loadings_mod$colorRC1,
rot.per = 0)
评论
0赞
clara
8/1/2023
谢谢,我现在尝试一下,但它应该可以工作。
评论