如何在R中的矩形中包装文本

如何在R中的矩形中包装文本,第1张

概述我正在对数据集执行相当复杂和长时间的统计分析,其中一个最终输出是具有居中标签的8个彩色正方形的组.颜色和标签都取决于分析结果,其中许多都是生产的,必须定期更新,因此不能手动编辑.正方形是2×2 cm2,在某些情况下,标签不适合正方形.如果我用cex减小字体大小,文本会变得太小. 这是一个简单的问题示例(我使用RStudio): plot.new()plot.window(xlim=c(0,5), 我正在对数据集执行相当复杂和长时间的统计分析,其中一个最终输出是具有居中标签的8个彩色正方形的组.颜色和标签都取决于分析结果,其中许多都是生产的,必须定期更新,因此不能手动编辑.正方形是2×2 cm2,在某些情况下,标签不适合正方形.如果我用cex减小字体大小,文本会变得太小.

这是一个简单的问题示例(我使用RStudio):

plot.new()plot.window(xlim=c(0,5),ylim=c(0,5))rect(1,1,4,4)text(2,2,"This is a long text that should fit in the rectangle")

问题是:如何在矩形中自动拟合变长字符串,如下图所示?

plot.new()plot.window(xlim=c(0,5)) # Window covers whole plot spacerect(1,4)text(2.5,3,"This is a long text")text(2.5,2.5,"that should fit")text(2.5,"in the rectangle")
解决方法 结合strwIDth以获得绘图上的实际宽度并使用strwrap来包装文本.它并不完美(文本应该用像素宽度而不是字符数包裹),但在大多数情况下应该这样做.

plot.new()plot.window(c(-1,1),c(-1,1))rectangleWIDth <- .6s <- "This is a long text that should fit in the rectangle"n <- nchar(s)for(i in n:1) {    wrappeds <- paste0(strwrap(s,i),collapse = "\n")    if(strwIDth(wrappeds) < rectangleWIDth) break}textHeight <- strheight(wrappeds)       text(0,wrappeds)rect(-rectangleWIDth/2,-textHeight/2,rectangleWIDth/2,textHeight/2) # would look better with a margin added
总结

以上是内存溢出为你收集整理的如何在R中的矩形中包装文本全部内容,希望文章能够帮你解决如何在R中的矩形中包装文本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1080603.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存