2013-03-05 11 views
11

Bir term-document matrisinden bir etiket bulutu oluşturan bazı çalışan R kodlarım var.R: wordcloud graphics/png için başlık ekle

Şimdi birçok belgeden bir sürü etiket bulutu oluşturmak ve bunları daha sonra görsel olarak denetlemek istiyorum. Etiket bulutu resmine ait hangi dokümanın/belgelerin ait olduğunu bilmek için oluşturulan grafiğe bir başlık ekleyelim. Bunu nasıl yaparım?

Belki bu çok açık, ancak hala R grafikli yeni başlayan kişiyim.

Kendi korpus burada listelemek için çok büyük, ama kodu biçiminde SO kullanıcı Andrie kullanılabilir kabul cevap ile birlikte bu SO soru kod (: Spaces in wordcloud Özel bir başlık eklemek istiyoruz ve this

cevap

14

wordcloud() işlevi tüm arsa doldurur. Bu, grafik aygıtınızda çizimden önce başlık için yer ayırmanız gerektiği anlamına gelir.

wordcloud taban grapics'i kullandığınızdan, bunu par(mfrow=...) veya layout() ile yapabilirsiniz. Ardından, text() ile arsa başlığını oluşturun.

ben ?wordcloud örneğe adapte, layout() ile göstermektedir:

library(tm) 
library(wordcloud) 

x <- "Many years ago the great British explorer George Mallory, who 
was to die on Mount Everest, was asked why did he want to climb 
it. He said, \"Because it is there.\" 

Well, space is there, and we're going to climb it, and the 
moon and the planets are there, and new hopes for knowledge 
and peace are there. And, therefore, as we set sail we ask 
God's blessing on the most hazardous and dangerous and greatest 
adventure on which man has ever embarked." 

layout(matrix(c(1, 2), nrow=2), heights=c(1, 4)) 
par(mar=rep(0, 4)) 
plot.new() 
text(x=0.5, y=0.5, "Title of my first plot") 
wordcloud(x, main="Title") 

Bu oluşturur:

enter image description here

4

bir fikir gibi bir resme biraz daha özel metin görüntüleri aktarmak ve grid.raster kullanarak tekrar bunları kaydedebilir ve grid.text kullanarak titile eklemektir. Örneğin:

ll <- list.files(patt='*.png') 
library(png) 
library(grid) 
imgs <- lapply(ll,function(x){ 
    img <- as.raster(readPNG(x)) 
    ## get the file name 
    x.name <- gsub('(.*).png','\\1',x) 
    ## new device for new image version 
    png(file =paste(x.name,'_modified','.png',sep='')) 
    grid.raster(img) 
    ## here I add title 
    grid.text(label = x.name,x=0.5,y=0.9,gp=gpar(cex=2)) 
    dev.off() 

}) 
+0

Bu güzel bir fikir, belki de bu ekstra bilgi eklemek için kullanacağız daha sonra PNG'ler. Ama tam olarak istediğim şey bu değil, wordcloud'un nesli sırasında bir başlık ekliyor. – knb

+1

@knd Sorunun başlığının (png) beni hataya yönlendirdiğini düşünüyorum. Andrie sana doğru cevabı ver. Bu cevap, arsanın ek açıklaması gibidir. – agstudy