R 词云格式

问题描述

我尝试遵循以下示例: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 here

所以我可以创建一个 wordcloud,看起来像这样:

enter image description here

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

这是否可行?


更新:

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

enter image description here

# 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",encoding = "UTF-8") 
wordcloud2::wordcloud2(cname,rotateratio = 0,color = cl[as.numeric(as.factor(cname$label))],fontFamily = "baskerville",shape = "diamond")

解决方法

试试 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")

enter image description here

编辑:

你也可以

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

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