テキスト情報だけでプロットを作成する方法に興味があります。これは基本的に、プロットウィンドウの「印刷」になります。
これまでに見つけた最良のオプションは次のとおりです。
library(RGraphics)
library(gridExtra)
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",
" One might imagine useful informaiton here")
grid.arrange(splitTextGrob(text))
しかし、フォントタイプ、サイズ、位置揃えなどを(私が知る限り)制御することはできません。
これは、基本グラフィックを使用して行うことができます。最初に、プロットウィンドウからすべてのマージンを取り除きます。
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
を使用してください):
次に、テキストをプロットします。余分なスペースは必要ないようだったので取り出しました。
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")
次に、デフォルト設定を復元します
par(mar = c(5, 4, 4, 2) + 0.1)
お役に立てば幸いです。
ggplot2
でannotate
を使用できます
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 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())
そしてもちろん、プロットのマージンや軸などを削除して、テキストだけにすることもできます
以下は、一緒に遊ぶのに便利な例です。
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)
よく読んで ?par
。 family
およびfont
引数を使用してフォントタイプを選択する機能には制限があります。