我在R中用代码创建了一个词云:
wordcloud(words$term, words$freq, random.order=FALSE, colors=colorRampPalette(brewer.pal(9,"Blues"))(32), scale=c(5, .5))
它的工作原理只是它以这样的方式对术语进行着色,使得最常见的颜色出现在最黑暗的颜色中,而最轻微的出现在最浅的颜色中。但我希望它反过来。有什么指针吗?感谢。
答案 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))
给你这样的东西:
更新:我撰写了一篇博客文章,其中涵盖了此主题以及n-gram案例和抓取您的文字云的数据:http://hack-r.com/?p=35
答案 1 :(得分:3)
Victorp在评论部分提供的另一个出色的解决方案是使用以下color
参数:
colors=rev(colorRampPalette(brewer.pal(9,"Blues"))(32)[seq(8,32,6)])