2013-03-05 37 views
11

Tôi có một số mã R đang hoạt động tạo ra một đám mây thẻ từ ma trận thuật ngữ tài liệu.R: thêm tiêu đề vào đồ họa wordcloud/png

Bây giờ tôi muốn tạo toàn bộ đám mây thẻ từ nhiều tài liệu và để kiểm tra chúng trực quan sau này. Để biết (các) tài liệu/tập tin ảnh đám mây nào thuộc về, tôi muốn thêm tiêu đề vào hình ảnh được tạo. Làm thế nào để làm điều đó?

Có thể điều này là hiển nhiên, nhưng tôi vẫn là người mới bắt đầu với đồ họa R.

corpus riêng của tôi là quá lớn để liệt kê nó ở đây, nhưng mã từ SO câu hỏi này (kết hợp với các dạng mã câu trả lời chấp nhận từ SO sử dụng Andrie thể được sử dụng: Spaces in wordcloud Tôi muốn thêm tiêu đề tùy chỉnh và một số văn bản tùy chỉnh hơn cho một bức tranh như this

Trả lời

14

các wordcloud() chức năng lấp đầy toàn bộ cốt truyện. Điều đó có nghĩa là bạn cần đặt trước dung lượng trên thiết bị đồ họa của mình cho tiêu đề trước khi vẽ.

Kể từ khi wordcloud sử dụng các đồ dùng cơ bản, bạn có thể thực hiện việc này với par(mfrow=...) hoặc layout(). Sau đó tạo tiêu đề cốt truyện với text().

tôi minh họa với layout(), thích nghi với các ví dụ trong ?wordcloud:

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

này tạo:

enter image description here

4

một ý tưởng là nhập khẩu các hình ảnh, và lưu lại chúng bằng cách sử grid.raster, và thêm titile sử dụng grid.text Ví dụ:.

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

Đây là một ý tưởng tốt đẹp, có lẽ tôi sẽ sử dụng này để thêm thông tin thêm để các PNG sau đó. Nhưng nó không phải là chính xác những gì tôi muốn - chèn một tiêu đề tại thời điểm thế hệ wordcloud. – knb

+1

@knd Tôi nghĩ rằng tiêu đề câu hỏi của bạn (png) dẫn tôi đến lỗi. Andrie cho bạn câu trả lời đúng. Câu trả lời này giống như chú thích của cốt truyện. – agstudy

Các vấn đề liên quan