параметры построения графика (например, xlim и ylim) в документе R markdown ведут себя по-разному на разных машинах

#r #r-markdown #knitr #bookdown

Вопрос:

Мы с другом пишем документ в R Markdown, который включает в себя несколько суперосновных диаграмм филогенетического дерева. Мы столкнулись со странной проблемой, когда один и тот же документ R markdown создает разные графики в зависимости от того, кто из нас вяжет документ. На машине моего друга графики выглядят нормально. На моей машине границы графика выглядят радикально иначе, создавая лишние пробелы вокруг диаграммы.

Код, который мы используем, выглядит следующим образом:

 library(ape)

my_newick <- "(((A,B),C),D);"
my_tree <- read.tree(text = my_newick)

plot(my_tree,
direction = "downwards", srt = 90,
label.offset = 0.2,
adj = 0.5,
x.lim = c(0,5),
y.lim = c(0,10), no.margin = T)
 

На компьютере моего друга результат в формате PDF выглядит следующим образом:

Красиво переплетенная страница с верхней древовидной диаграммой, красиво выровненной по тексту и небольшим пробелом

На моей машине результат выглядит следующим образом:

Уродливая вязаная страница с уменьшенной верхней диаграммой дерева и большим количеством пробелов вокруг диаграммы

Просто интересно, есть ли у кого-нибудь какие-либо идеи относительно того, почему один и тот же код в одном и том же документе может создавать такие разные фигуры, как эта? Есть ли что-то основное, чего мне здесь не хватает, например, некоторые глобальные настройки в моей установке R, связанные с построением графика? Или это может быть потому, что мы используем разные версии R? (Я отстаю от 3.6.2, я думаю, что мой друг, возможно, использует v4. Это, пожалуй, единственное различие, о котором я могу думать. Мы вяжем один и тот же документ, и мы оба используем Mac OS.) Правка: Дважды проверил это, и мы оба используем одинаковые версии R (3.6.2). Я использую v5.4-1 пакета ape против его 5.3, но это все).

Ответ №1:

Это потому, что у машины вашего друга есть инструменты для обрезки фигур: pdfcrop и ghostscript . Эти инструменты, вероятно, не установлены на вашем компьютере. Поскольку вы не предоставили свою sessionInfo() , я не знаю вашу платформу, поэтому трудно предоставить конкретные инструкции по установке. Если ваш дистрибутив LaTeX-TinyTeX, pdfcrop его можно установить через tinytex::tlmgr_install('pdfcrop') . Обратите внимание, что если вы работаете в Windows, вам нужно будет установить Perl для pdfcrop . Если вы работаете на macOS, ghostscript его можно установить с помощью Homebrew.