Arhn - архитектура программирования

Элементы графика отображаются за пределами области графика с помощью cairo_pdf (), но не pdf ()

Я плохо разбираюсь в графических устройствах и т. Д. Все, что мне нужно, это сохранять графики в PDF и вставлять шрифты.

Я использую cairo_pdf() для этого, но я заметил, что иногда элементы графика печатаются за пределами области поля / графика (см. Скриншоты PDF-файлов). Я могу воспроизвести проблему на разных машинах Windows, разных версиях R, используя пакеты cairoDevice или Cairo, и, например, с lines(). Но графики, сохраненные с помощью pdf(), выглядят нормально.

Мои вопросы:

  • Это воспроизводимо? Если да, это ошибка и где?
  • Были ли другие ситуации, когда cairo_pdf()-участки выглядели иначе, чем pdf()-графики? Есть ли еще недостатки использования cairo_pdf()?

Ниже приведены скриншоты деталей всех PDF-файлов, иллюстрирующие различия. Обратите внимание, что на левом изображении оси перекрываются с некоторыми точками.

Скриншот PDF-файлов, сохраненных с помощью cairo_pdf () и pdf ()

capabilities("cairo")
#> cairo 
#>  TRUE
set.seed(123456)
N <- 10000
v1 <- rnorm(N)
v2 <- rnorm(N)
v3 <- ifelse(v1 > 1.02 | v2 > 1.02 | v1 < -.02 | v2 < -.02, 2, 1)

cairo_pdf("plot1.pdf")
plot(v1, v2, xlim = 0:1, ylim = 0:1, col = v3, pch = 16)
dev.off()
#> null device 
#>           1

pdf("plot2.pdf")
plot(v1, v2, xlim = 0:1, ylim = 0:1, col = v3, pch = 16)
dev.off()
#> null device 
#>           1

devtools::session_info()
#> Session info ------------------------------------------------------------------
#>  setting  value                       
#>  version  R version 3.4.2 (2017-09-28)
#>  system   x86_64, mingw32             
#>  ui       Rgui                        
#>  language (EN)                        
#>  collate  German_Germany.1252         
#>  tz       Europe/Berlin               
#>  date     2018-03-09                  
#> 
#> Packages ----------------------------------------------------------------------
#>  package   * version date       source        
#>  base      * 3.4.2   2017-09-28 local         
#>  compiler    3.4.2   2017-09-28 local         
#>  datasets  * 3.4.2   2017-09-28 local         
#>  devtools    1.13.5  2018-02-18 CRAN (R 3.4.3)
#>  digest      0.6.15  2018-01-28 CRAN (R 3.4.3)
#>  graphics  * 3.4.2   2017-09-28 local         
#>  grDevices * 3.4.2   2017-09-28 local         
#>  memoise     1.1.0   2017-04-21 CRAN (R 3.4.1)
#>  methods   * 3.4.2   2017-09-28 local         
#>  stats     * 3.4.2   2017-09-28 local         
#>  utils     * 3.4.2   2017-09-28 local         
#>  withr       2.1.1   2017-12-19 CRAN (R 3.4.3)
22.02.2018

  • Когда я запускаю ваш код, изображение в pdf показывает данные по всему диапазону, который вы запрашиваете - от 0 до 1 как по оси x, так и по оси y. Т.е. Я не воспроизводю ваш результат. 22.02.2018
  • У вас нет точек ниже нижней оси или справа от правой оси? Снимок экрана - это лишь часть всего PDF-файла. 22.02.2018
  • Правильный. Ничего, кроме указанного вами региона, от нуля до единицы. Если вы хотите увидеть больше данных, попробуйте что-нибудь вроде xlim = c(-3,3), ylim = c(-3,3) 22.02.2018
  • Спасибо. Но это не решило бы мою проблему. Моя проблема: почему результат cairo_pdf() отличается от результата pdf()? 22.02.2018

Ответы:


1

Эта ошибка исправлена ​​в R 3.6.0.

Из НОВОСТЕЙ:

Графическое устройство cairo_pdf (и другие устройства на базе Каира) теперь корректно закрепляются по правой и нижней границе.
Ли Кельвин сообщил об ошибке с размером пикселя.

26.04.2019
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..