首页 > 解决方案 > 在R中绘制多个带有长文本标题的图表?

问题描述

假设我将绘图拆分为 2x2 网格par(mfrow=c(2,2)),并且我想为每个绘图放置一个标题(所以 4 个绘图,4 个不同的标题)。但是,我的标题真的很长;例如,ABCDEFGCDEFGPOLINTDEEGHABCDEFGPOLINTDEEGHGSBJWDNLEBDLJHWEBDYB(真正的标题是名字的组合,但由于隐私问题我不能放在这里,但它与示例基本相同)。标题的长度范围为 4 到 120 个字母。我怎样才能完美地放入标题?可读且不会超出情节。*我正在使用基本功能plot,继续使用此功能而不是ggplot.

我尝试将标题绘制为文本text而不是main中的标题plot,但文本已超出情节。我可以手动将标题分成几行,但它需要很多作品,而且我有很多情节。文本的大小也是一个问题,其中一些是巨大的,因为文本很短,而其中一些实际上是不可读的。我希望它们保持一致。

标签: rplot

解决方案


一个选项是将固定宽度的字符串拆分为每个图中的新行。

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]')

推荐阅读