如何使R字云显示最常见的术语,颜色较浅

时间:2014-08-26 11:49:41

标签: r word-cloud

我在R中用代码创建了一个词云:

wordcloud(words$term, words$freq, random.order=FALSE, colors=colorRampPalette(brewer.pal(9,"Blues"))(32), scale=c(5, .5))

它的工作原理只是它以这样的方式对术语进行着色,使得最常见的颜色出现在最黑暗的颜色中,而最轻微的出现在最浅的颜色中。但我希望它反过来。有什么指针吗?感谢。

2 个答案:

答案 0 :(得分:7)

好问题。您可以指定基于频率的非随机颜色分配(random.color = FALSE),然后使用按您喜欢的顺序选择的调色板选择colors的值。

例如,如果{VIGnette中的默认/示例colors = "black"与您想要的相反,则选择colors = "Pastel"或您喜欢的其他比例。

就个人而言,我使用Color Brewer(RColorBrewer)和顺序托盘来完成此任务:

pal = brewer.pal(9,"Blues")
wordcloud(words = d$word, 
          freq = d$freq, 
          scale = c(8,.3), 
          random.order = F,
          random.color = F,
          colors = pal) 

或者,您可以在颜色托盘上使用rev,正如@Victorp在评论中指出的那样。这是一个例子:

pal = brewer.pal(9,"BuGn")
wordcloud(words = d$word, 
          freq = d$freq, 
          scale = c(8,.3), 
          random.order = F,
          random.color = F,
          colors = rev(pal))    

给你这样的东西:

Word Cloud

更新:我撰写了一篇博客文章,其中涵盖了此主题以及n-gram案例和抓取您的文字云的数据:http://hack-r.com/?p=35

答案 1 :(得分:3)

Victorp在评论部分提供的另一个出色的解决方案是使用以下color参数:

colors=rev(colorRampPalette(brewer.pal(9,"Blues"))(32)[seq(8,32,6)])