Добавить ссылку на сноску вне области графика в R?

Я хотел бы добавить ссылку на сноску к моему 3-панельному графику сетки фасетов, созданному в R. Это сноска для кредита источник данных. В идеале я бы хотел, чтобы он был ниже и вне всех трех осей — предпочтительно в левом нижнем углу.

Я использую ggplot2, а также ggsave(). Это означает, что я не могу использовать решения на основе grid.text(), потому что они отрисовываются только в окне x11()и не могут быть добавлены к объекту ggplot.

Использование вместо этого png() ...code... dev.off()не представляется возможным, потому что мне нужны параметры изменения размера ggsaveи find эта команда производит более качественные и четкие отпечатки (которые также намного быстрее, потому что я не печатаю на экран).

Вот мой базовый код:

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 раза, в каждом из 3 аспектов, а не 1 раз.
  • Он содержится внутри сюжетов, а не вне их.
  • Текст трудно разместить — похоже, используются единицы измерения (моя ось X — это дата, поэтому 0 соответствует 1970 году).
  • Размер текста не меняется, несмотря на мой параметр размера.

Несколько связанных ссылок, когда я исследовал это...

27
задан Community 23 May 2017 в 12:34
поделиться