r - 在R中绘制多个带有长文本标题的图表?
问题描述
假设我将绘图拆分为 2x2 网格par(mfrow=c(2,2))
,并且我想为每个绘图放置一个标题(所以 4 个绘图,4 个不同的标题)。但是,我的标题真的很长;例如,ABCDEFGCDEFGPOLINTDEEGHABCDEFGPOLINTDEEGHGSBJWDNLEBDLJHWEBDYB
(真正的标题是名字的组合,但由于隐私问题我不能放在这里,但它与示例基本相同)。标题的长度范围为 4 到 120 个字母。我怎样才能完美地放入标题?可读且不会超出情节。*我正在使用基本功能plot
,继续使用此功能而不是ggplot
.
我尝试将标题绘制为文本text
而不是main
中的标题plot
,但文本已超出情节。我可以手动将标题分成几行,但它需要很多作品,而且我有很多情节。文本的大小也是一个问题,其中一些是巨大的,因为文本很短,而其中一些实际上是不可读的。我希望它们保持一致。
解决方案
一个选项是将固定宽度的字符串拆分为每个图中的新行。
par(mfrow=c(2,2))
n <- 10
pat <- sprintf("(.{%d})", n)
for(i in seq_along(str1)) plot(0, 0,
main = gsub(pat, "\\1\n", str1[i], perl = TRUE))
数据
library(stringi)
set.seed(24)
str1 <- stri_rand_strings(4, 50, '[A-Z]')
推荐阅读
- doxygen - doxygen - WARN_AS_ERROR 仅适用于某些区域
- zip - 嵌入的 OLE PDF-Object 比 DOCX 中的原始对象大
- javascript - PHP / Javascript 变量传递——意外结果
- view - Hive 元数据视图行数
- android - CoordinatorLayout 内的 RecyclerView 滚动问题
- c++ - 错误:使用未声明的标识符 'self' c++-objective c 混合
- android - Android,完成从 firebase 加载数据
- python - Django 和 docker:向控制台输出信息
- angular - 在验证 Angular 表单时显示消息时出现错误
- c++ - 结构错误:“没有匹配的函数调用”