Как напечатать или поместить текст в pdf () в R без уценки - PullRequest
2 голосов
/ 28 июня 2019

Я создаю PDF-файл с некоторыми графиками, но я также хочу добавить текстовое сообщение внизу. По независящим от меня причинам я не могу установить дистрибутив латекса в этой системе, поэтому я не могу связать файл уценки, но должен использовать pdf().

Когда я просто использую print или cat, в pdf ничего не появляется. Я пытался использовать sink() на основе ответа здесь , но это тоже не сработало:

pdf("filename.pdf")
sink("filename.pdf")
print("message")
sink()
dev.off()

Сообщение об ошибке не получено, но в созданном файле нет страниц.

Есть идеи? Я обдумываю обходной путь простого построения только текстового графика, но надеюсь, что есть более разумное решение.

1 Ответ

2 голосов
/ 28 июня 2019

Мы могли бы просто нанести текст с помощью устройства text в pdf.text работает только после plot вызова.То, что нам не нужно все деактивировать, мы называем plot.new, что по сути является пустым сюжетом.Изучите параметры ?pdf и ?text для дальнейшей настройки.

txt <- "message"

pdf("filename2.pdf", paper="a4")
plot.new()
text(x=.1, y=.1, txt)  # first 2 numbers are xy-coordinates within [0, 1]
text(.5, .5, txt, font=2, cex=1.5)
text(.9, .9, txt, font=4, cex=2, col="#F48024")
dev.off()

enter image description here

Для решения sink лучше использовать cat идобавить возврат каретки \r в самом конце текста, чтобы получить действительную последнюю строку для pdf обработки файла .txt.

sink("filename.txt")  # to be found in dir `getwd()`
cat("message\r")
sink()

pdf("filename.pdf")  # ditto
plot.new()
text(.5, .5, readLines("filename.txt"))
dev.off()

Настройка с различными x и y координатами, font параметрами и paper форматированием при pdf вызове.

Результат

enter image description here

...