R - Только текст графика
Любопытно, как можно создать сюжет с только текстовой информацией. По существу это будет "печать" для окна графика.
Самый лучший вариант, который я нашел до сих пор, следующий:
library(RGraphics)
library(gridExtra)
text = paste("\n The following is text that'll appear in a plot window.\n",
" As you can see, it in the plot window",
" One might imagine useful informaiton here")
grid.arrange(splitTextGrob(text))
![enter image description here]()
Тем не менее, у меня нет контроля (насколько я могу судить) по типу шрифта, его размеру, обоснованию и т.д.
Ответы
Ответ 1
Вы можете сделать это, используя базовую графику. Сначала вы хотите удалить все поля из окна графика:
par(mar = c(0,0,0,0))
И тогда вы построите пустой сюжет:
plot(c(0, 1), c(0, 1), ann = F, bty = 'n', type = 'n', xaxt = 'n', yaxt = 'n')
Здесь приводится описание того, что происходит здесь (используйте ?plot.default
и ?par
для более подробной информации):
- ann - отображать аннотации (установлено в FALSE)
- bty - Тип границы (none)
- тип - Тип графика (тот, который не создает точек или линий)
- xaxt - тип оси x (нет)
- yaxt - тип оси y (нет)
Теперь нарисуем текст. Я достал лишние пробелы, потому что они не казались необходимыми.
text(x = 0.5, y = 0.5, paste("The following is text that'll appear in a plot window.\n",
"As you can see, it in the plot window\n",
"One might imagine useful informaiton here"),
cex = 1.6, col = "black")
![enter image description here]()
Теперь, чтобы восстановить настройки по умолчанию
par(mar = c(5, 4, 4, 2) + 0.1)
Я надеюсь, что это поможет!
Ответ 2
Вы можете использовать annotate
в ggplot2
, например
library(ggplot2)
text = paste("\n The following is text that'll appear in a plot window.\n",
" As you can see, it in the plot window\n",
" One might imagine useful informaiton here")
ggplot() +
annotate("text", x = 4, y = 25, size=8, label = text) +
theme_bw() +
theme(panel.grid.major=element_blank(),
panel.grid.minor=element_blank())
![enter image description here]()
И вы можете, конечно, удалить поля, оси и т.д., чтобы иметь только текст
Ответ 3
Здесь также удобный пример:
par(mar = c(0,0,0,0))
plot(c(0, 1), c(0, 1), ann = F, bty = 'n', type = 'n', xaxt = 'n', yaxt = 'n')
text(x = 0.34, y = 0.9, paste("This is a plot without a plot."),
cex = 1.5, col = "black", family="serif", font=2, adj=0.5)
text(x = 0.34, y = 0.6, paste(" Perhpas you'll:"),
cex = 1.2, col = "gray30", family="sans", font=1, adj=1)
text(x = 0.35, y = 0.6, paste("Find it helpful"),
cex = 1.2, col = "black", family="mono", font=3, adj=0)
![enter image description here]()
Ответ 4
Прочитайте ?par
. Существует ограниченная возможность выбора типа шрифта с помощью аргументов family
и font
.