Curious how one might create a plot with only text information. This will essentially be a \"print\" for the plot window.
The best option I\'ve found so far is the foll
You can do this using base graphics. First you'll want to take away all of the margins from the plot window:
par(mar = c(0,0,0,0))
And then you'll plot an empty plot:
plot(c(0, 1), c(0, 1), ann = F, bty = 'n', type = 'n', xaxt = 'n', yaxt = 'n')
Here's a guide to what's going on here (use ?plot.default
and ?par
for more details):
Now to plot the text. I took out the extra spaces because they didn't seem to be necessary.
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's in the plot window\n",
"One might imagine useful informaiton here"),
cex = 1.6, col = "black")
Now to restore the default settings
par(mar = c(5, 4, 4, 2) + 0.1)
I hope that helps!
You could use annotate
in ggplot2
like
library(ggplot2)
text = paste("\n The following is text that'll appear in a plot window.\n",
" As you can see, it's in the plot window\n",
" One might imagine useful information here")
ggplot() +
annotate("text", x = 4, y = 25, size=8, label = text) +
theme_void()
And you can of course remove the plot margins, axes, etc. to have just the text
Read up on ?par
. There is limited capability to select the font type via the family
and font
arguments.
Here's a handy example to play with too:
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)