web-dev-qa-db-ja.com

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's in the plot window",
           "       One might imagine useful informaiton here")
    grid.arrange(splitTextGrob(text))


enter image description here


しかし、フォントタイプ、サイズ、位置揃えなどを(私が知る限り)制御することはできません。

21
EconomiCurtis

これは、基本グラフィックを使用して行うことができます。最初に、プロットウィンドウからすべてのマージンを取り除きます。

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-ボーダータイプ(なし)
  • type-プロットタイプ(ポイントまたはラインを生成しないタイプ)
  • 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's 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)

お役に立てば幸いです。

41
ZNK

ggplot2annotateを使用できます

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())

enter image description here

そしてもちろん、プロットのマージンや軸などを削除して、テキストだけにすることもできます

15
sckott

以下は、一緒に遊ぶのに便利な例です。

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

7
EconomiCurtis

よく読んで ?parfamilyおよびfont引数を使用してフォントタイプを選択する機能には制限があります。

1
Carl Witthoft