При создании графика в R с использованием устройства cairo_pdf результирующий график не учитывает границы построения.Линии и заштрихованные области будут проливаться через нижнюю ось x и правую сторону оси y (стороны 1 и 4).Я хотел бы знать, возможно ли исправить это поведение при использовании 'cairo_pdf' в R?
В качестве примера, посмотрите это изображение:
Это изображение является скриншотомPDF-файл, созданный с использованием следующего минимального рабочего примера кода:
cairo_pdf(file="test.pdf", width=0.5, height=0.5)
par("mar"=c(0.25,0.25,0.25,0.25))
plot(NA, xlim=c(0,1), ylim=c(0,1), axes=FALSE)
polygon(x=c(-1,-1,2,2), y=c(-1,2,2,-1), density=5, col="green3", lwd=10)
abline(h=0.25, col="red", lwd=5)
abline(h=0.75, col="hotpink", lwd=5, lend=1)
abline(v=0.25, col="blue", lwd=5)
abline(v=0.75, col="cyan", lwd=5, lend=1)
box()
dev.off()
Здесь я рисую заштрихованную область зеленым цветом, используя 'многоугольник', с границами, которые лежат вне графика.Я также рисую два набора горизонтальных / вертикальных линий, используя «аблайн».Первый в каждой паре использует стандартные закругленные заглавные буквы, в то время как второй в каждой паре использует заглавные буквы.
Как вы можете видеть, все линии затенения и абзацы с закругленными концами по умолчанию простираются за пределы области черчения вдоль нижней и правой боковых осей.Только при использовании 'lend = 1' я могу содержать абзацы для области построения.Однако я не знаю такого исправления для штриховых линий.
Я бы наивно ожидал, что область построения R будет соблюдена, и для нее будет невозможно построить график за пределами этой области, если это явно не указано пользователем.
Я проверил это на других устройствах cairo (SVG и PS), а также воспроизвел то же поведение, указав, что это проблема с графическим API-интерфейсом cairo или его реализацией в R.
Такое поведение не возникает при использовании стандартного графического устройства R 'pdf'.Я бы в общем случае переключился на «pdf», однако «cairo_pdf» имеет несколько преимуществ по сравнению с «pdf», в частности, уменьшение размера выходного файла и поддержка большего массива символов UTF-8, поэтому в идеале я бы предпочел использовать cairo_pdf.
Заранее благодарим вас за понимание этого вопроса.