0

我试图遵循这个例子:colorlist来接收一个 wordcloud,它对一个标签使用相同的颜色(不管单词的频率如何)。

我试图利用我以前的代码,所以这就是我尝试的:

# Install
install.packages("tm")  # for text mining
install.packages("SnowballC") # for text stemming
install.packages("wordcloud") # word-cloud generator 
install.packages("RColorBrewer") # color palettes
# Load
library("tm")
library("SnowballC")
library("wordcloud")
library("RColorBrewer")
# Import Freq List
cname<-read.csv("/Users/mypath/wordcloud.csv",head=TRUE,encoding = "UTF-8") 
# Create Wordcloud 
set.seed(1234)
wordcloud(words = cname$word, freq = cname$count, min.freq = 1, max.words=200, min_font_size=12, colors = as.character(cname$color), ordered.colors=TRUE)

此处为 CSV

所以我可以创建一个 wordcloud,看起来像这样:在此处输入图像描述

但是,我想要的是a)更漂亮的调色板(不会对眼睛造成太大伤害)和b)如果可能的话,相同颜色的单词会出现在一个区域中 c)更漂亮的字体。

这在某种程度上可行吗?


更新:

我按照建议使用了代码,但会收到错误的映射

在此处输入图像描述

# Install
install.packages("wordcloud2") # word-cloud generator 
install.packages("RColorBrewer") # color palettes
# Load
library(wordcloud2)
library(RColorBrewer)
cl <- brewer.pal(length(unique(cname$label)), "Spectral")
# Run
cname<-read.csv("/Users/wordcloud.csv", head=TRUE, encoding = "UTF-8") 
wordcloud2::wordcloud2(cname, rotateRatio = 0,
                       color = cl[as.numeric(as.factor(cname$label))],                        
                       fontFamily = "baskerville",
                       shape = "diamond")
4

1 回答 1

1

试试 wordcloud2 包。您可以自定义旋转、形状等。

library(wordcloud2)
library(RColorBrewer)
cl <- brewer.pal(5, "Spectral")

wordcloud2::wordcloud2(words, rotateRatio = 0, 
                       color = cl[as.numeric(as.factor(words$label))],
                       fontFamily = "avenir",
                       shape = "diamond")

在此处输入图像描述

编辑:

你也可以拥有

cl <- brewer.pal(length(unique(words$label)), "Spectral")

在这里,颜色的数量将与唯一标签的数量相匹配。

于 2021-07-20T14:29:17.800 回答