37

R で作成した 3 パネルのファセット グリッド プロットに脚注の引用を追加したいと思います。これは、データ ソースをクレジットするための脚注です。理想的には、3 つの軸すべての下と外側、できれば左下に配置したいと思います。

ggplot2と も使用していggsave()ます。これは、ウィンドウにのみ描画し、ggplot オブジェクトに追加できない grid.text()ため、ベースのソリューションを使用できないことを意味します。x11()

のサイズ変更パラメーターが必要なため、代わりに使用png() ...code... dev.off()することはオプションではないようですggsave。このコマンドは、より優れた、より鮮明な印刷を生成することがわかります(画面に印刷していないため、これもはるかに高速です)。

これが私の基本的なコードです:

p1 <- ggplot(data, aes(date, value))
    facet_grid(variable ~ .) + geom_point(aes(y =value), size=1) + 
    theme_bw() +
        opts(title=mytitle)
print(p1)
ggsave("FILE.png",width=mywidth, height=myheight, p1, dpi=90)

私はもう試した:

p1 <- ggplot(data, aes(date, value))
    facet_grid(variable ~ .) + geom_point(aes(y =value), size=1) + 
    theme_bw() +
        opts(title=mytitle)
print(p1)
grid.text(unit(0.1,"npc"),0.025,label = "Data courtesy of Me")
grid.gedit("GRID.text", gp=gpar(fontsize=7))
ggsave("FILE.png",width=mywidth, height=myheight, p1, dpi=90)

これにより、脚注が x11() ディスプレイの左下隅、プロットの外部に適切に配置されますが、残念ながら、p1 オブジェクトには適用されないため、ggsave コマンドによって保存されません。

私も試しました:

p1 <- ggplot(data, aes(date, value))
    facet_grid(variable ~ .) + geom_point(aes(y =value), size=1) + 
    theme_bw() +
    opts(title=mytitle) +
annotate("text", label = "Footnote", x = 0, y = 10, size = 5, colour = "black") +
print(p1)
ggsave("FILE.png",width=mywidth, height=myheight, p1, dpi=90)

これは ggsave を使用して正常に印刷されますが、次の問題があります。

  • 3 つのファセットのそれぞれで、1 回ではなく 3 回繰り返されます。
  • プロットの外部ではなく、プロット内に含まれています。
  • テキストの配置が難しい --- プロット単位を使用しているようです (x 軸は日付なので、0 は 1970 年頃です)。
  • 私のサイズパラメータにもかかわらず、テキストサイズは変わらないようです。

これを調べたときの関連リンクがいくつかあります...

4

3 に答える 3

65

ggplot2 は、追加のパッケージを必要とせずに、この機能をネイティブに備えています。... + labs(caption = "footnote", ...)

library(ggplot2) 
ggplot(diamonds, aes(carat, price, color = clarity)) + 
  geom_point() + 
  labs(title = "Diamonds are forever...", 
       subtitle = "Carat weight by Price", 
       caption = "H. Wickham. ggplot2: Elegant Graphics for Data Analysis Springer-Verlag New York, 2009.")

ここに画像の説明を入力

于 2017-02-16T23:33:01.093 に答える
36
library(gridExtra)
library(grid)
library(ggplot2)

g <- grid.arrange(qplot(1:10, 1:10, colour=1:10) + labs(caption="ggplot2 caption"), 
              bottom = textGrob("grid caption", x = 1, 
                                hjust = 1, gp = gpar(fontface = 3L, fontsize = 9)))
ggsave("plot.pdf", g)

ここに画像の説明を入力

編集: このソリューションは、ggplot2 に追加された最近のキャプション引数をいくらか補完することに注意してください。

于 2012-04-17T19:51:45.627 に答える