找回密码
 注册
查看: 11451|回复: 2

标签云制作 R语言包 wordcloud

[复制链接]
发表于 2013-3-25 09:31:49 | 显示全部楼层 |阅读模式
今天在群里跟大家简单讨论了一下R包:wordcloud,一个制作标签云的程序包。
CRAN:http://cran.r-project.org/

1、加载程序包:
library(Rcpp) #衔接R与C++
library(RColorBrewer) #R客都懂的颜色程序包
library(wordcloud) #加载wordcloud包

2、wordcloud函数介绍:
commonality.cloud--公共词云
comparison.cloud--对比词云
textplot--基于X Y坐标的非重叠的文本云
wordcloud--常规的文字云

3、主要函数详细介绍:
先介绍一下常规的标签云,wordcloud; 因为R对中文的支持有限,所以后面能用英文演示的尽量用英文;
使用:
wordcloud(words,freq,scale=c(4,0.5),min.freq=3,max.words=Inf,random.order=TRUE,random.color=FALSE,
rot.per=.1,colors="black",ordered.colors=FALSE,use.r.layout=FALSE,...)
参数:
words:词
freq:词频
scale:c(最大字号,最小字号)
min.freq:最小限制频数,低于频数的词不被显示
max.words:显示词的数量
random.order:T:乱序,F:按频数降序排列
random.color:T:任意选择颜色,F:基于频数选择颜色
rot.per:T:水平,F:旋转90度

实例:
test1=read.csv("d:/R/wf2.csv")
rc=brewer.pal(9,"Set1") #使用Set1主题模板
wordcloud(test1$words,test1$fre,scale=c(5,0.5),min.freq=-Inf,max.words=Inf,colors=rc)
wordcloud.png


第二个函数介绍一下textplot,基于x,y坐标做词云;
rt=read.delim("clipboard")  #剪切板读数据,特别是针对Excel数据
head(rt,3)
wordcloud1.jpeg

textplot(rt$x.lab,rt$y.lab,rt$city,cex=.67,col=brewer.pal(9,"Set1"))
wordcloud2.png

共性词云和对比词云我用包里的例子,基于国情咨文的词频矩阵分析
以wordcloud包中例子为说明


if(require(tm)){
        data(crude)
        crude <- tm_map(crude, removePunctuation)
        crude <- tm_map(crude, function(x)removeWords(x,stopwords()))
        tdm <- TermDocumentMatrix(crude)
        m <- as.matrix(tdm)
        v <- sort(rowSums(m),decreasing=TRUE)
        d <- data.frame(word = names(v),freq=v)
       
        wordcloud(d$word,d$freq)

        #A bigger cloud with a minimum frequency of 2
        wordcloud(d$word,d$freq,c(8,.3),2)

        #Now lets try it with frequent words plotted first
        wordcloud(d$word,d$freq,c(8,.5),2,,FALSE,.1)

        #####                         with colors                 #####
        if(require(RColorBrewer)){

                pal <- brewer.pal(9,"BuGn")
                pal <- pal[-(1:4)]
                wordcloud(d$word,d$freq,c(8,.3),2,,FALSE,,.15,pal)


                pal <- brewer.pal(6,"Dark2")
                pal <- pal[-(1)]
                wordcloud(d$word,d$freq,c(8,.3),2,,TRUE,,.15,pal)
               
                #random colors
                wordcloud(d$word,d$freq,c(8,.3),2,,TRUE,TRUE,.15,pal)
        }
        #####                         with font                         #####

        wordcloud(d$word,d$freq,c(8,.3),2,,TRUE,,.15,pal,
                vfont=c("gothic english","plain"))

        wordcloud(d$word,d$freq,c(8,.3),2,100,TRUE,,.15,pal,vfont=c("script","plain"))
       
        wordcloud(d$word,d$freq,c(8,.3),2,100,TRUE,,.15,pal,vfont=c("serif","plain"))
}


wordexa.png
wordexa1.png
wordexa2.png

参考与http://blog.sina.com.cn/s/blog_6934cecb01016ikl.html

回复

使用道具 举报

发表于 2013-3-28 09:36:01 | 显示全部楼层
楼主强人,支持
回复 支持 反对

使用道具 举报

发表于 2013-3-28 09:37:38 | 显示全部楼层
楼主能介绍一下R读取网络数据的包及用法吗?谢谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-25 04:08 , Processed in 0.023897 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表