Das R-Paket wordcloud hat eine sehr nützliche Funktion, die Wordlayout heißt. Es nimmt Anfangspositionen von Wörtern und ihre jeweiligen Größen an und ordnet sie so an, dass sie sich nicht überschneiden. Ich möchte die Ergebnisse dieser Funktionen verwenden, um einen geom_text-Plot in ggplot zu erstellen. Ich kam zu dem folgenden Beispiel, erkannte aber bald, dass es einen großen Unterschied zwischen Cex (Wordlayout) und Größe (Geom_plot) zu geben scheint, da Wörter im Grafikpaket viel größer erscheinen. hier ist mein Beispielcode. Plot 1 ist die ursprüngliche Wordcloud Handlung, die keine Überschneidungen hat:Verwenden Sie wordlayout Ergebnisse für ggplot geom_text
library(wordcloud)
library(tm)
library(ggplot2)
samplesize=100
textdf <- data.frame(label=sample(stopwords("en"),samplesize,replace=TRUE),x=sample(c(1:1000),samplesize,replace=TRUE),y=sample(c(1:1000),samplesize,replace=TRUE),size=sample(c(1:5),samplesize,replace=TRUE))
#plot1
plot.new()
pdf(file="plot1.pdf")
textplot(textdf$x,textdf$y,textdf$label,textdf$size)
dev.off()
#plot2
ggplot(textdf,aes(x,y))+geom_text(aes(label = label, size = size))
ggsave("plot2.pdf")
#plot3
new_pos <- wordlayout(x=textdf$x,y=textdf$y,words=textdf$label,cex=textdf$size)
textdf$x <- new_pos[,1]
textdf$y <- new_pos[,2]
ggplot(textdf,aes(x,y))+geom_text(aes(label = label, size = size))
ggsave("plot3.pdf")
#plot4
textdf$x <- new_pos[,1]+0.5*new_pos[,3]#this is the way the wordcloud package rearranges the positions. I took this out of the textplot function
textdf$y <- new_pos[,2]+0.5*new_pos[,4]
ggplot(textdf,aes(x,y))+geom_text(aes(label = label, size = size))
ggsave("plot4.pdf")
ist es eine Möglichkeit, diese CEX/Größenunterschied zu überwinden und wieder verwenden wordlayout für ggplots?
Ihnen danken. Ich habe nur die Änderungen vorgenommen, die Sie vorgeschlagen haben (ich habe dieselben Par() $ cin-Standardwerte wie Sie). Nun scheinen die Wörter gleich groß zu sein, aber die Wörter in meinem ggplot sind total überlagert. Dort sind Wörter weniger Wörter sichtbar Textplot. siehe [plot1] (http://homepage.univie.ac.at/stephan.schloegl/stuff/plot1.pdf) [plot3] (http://homepage.univie.ac.at/stephan.schloegl/stuff/plot3 .pdf) [plot4] (http://homepage.univie.ac.at/stephan.schloegl/stuff/plot4.pdf) – supersambo
Vielleicht basieren die Positionen auch auf anderen Einheiten – James
Eigentlich sieht es so aus, als ob textplot die Position des Mittelpunkts verwendet, während ggplot die Position der linken Kante des Textes verwenden könnte? – James