对ggplot geom_text使用wordlayout结果

发布时间:2019-10-09 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了对ggplot geom_text使用wordlayout结果脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
R包wordcloud有一个非常有用的功能,叫做wordlayout.它采用单词的初始位置及其各自的大小,以不重叠的方式重新排列它们.我想用这个函数的结果在ggplot中做一个geom_text图.
我提出了以下示例,但很快就意识到,在cex(wordlayout)和size(geom_plot)之间似乎存在很大差异,因为图形包中的单词看起来更大.
这是我的示例代码. Plot 1是原始的wordcloud图,没有重叠:
library(wordcloud)
library(tm)
library(ggplot2)

samplesize=100
textdf <- data.frame(label=sample(stopwords("en"),samplesize,replace=TRUE),x=sample(c(1:1000),y=sample(c(1:1000),size=sample(c(1:5),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,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,size = size))
ggsave("plot4.pdf")

有没有办法克服这个cex /大小差异,并重新使用wordlayout为ggplots?

解决方法

cex代表字符扩展,是文本相对于默认值放大的因素,由cin指定 – 在我的安装中设置为0.15 in 0.2 in:有关详细信息,请参阅?par.

@hadley explains ggplot2尺寸以mm为单位.因此,cex = 1将对应于size = 3.81或size = 5.08,这取决于它是否按宽度或高度缩放.当然,字体选择可能会导致差异.

此外,要使用绝对大小,您需要在aes之外使用大小规范,否则它将其视为映射到的变量并选择缩放本身,例如:

ggplot(textdf,y))+geom_text(aes(label = label),size = textdf$size*3.81)

总结

以上是脚本之家为你收集整理的对ggplot geom_text使用wordlayout结果全部内容,希望文章能够帮你解决对ggplot geom_text使用wordlayout结果所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:76874919,请注明来意。

快乐,其实很简单!比如有我~

关注我升职加薪

标签: