R: Полупрозрачность отображается только на моем Mac - PullRequest
0 голосов
/ 03 марта 2019

Я могу создать и сохранить в формате PDF график ggplot в формате .pdf, включая полупрозрачность (альфа):

library(ggplot2)
library(cowplot)
p <- qplot(Sepal.Length, Petal.Length, data = iris, color = Species, size = Petal.Width, alpha = 0.5)
save_plot("plot.pdf",p)

enter image description here

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

Я попробовал паруОбходных путей, которые я нашел в Интернете, например:

save_plot("plot.pdf",p, useDingbats=F)

Или

save_plot("plot.pdf",p, device = cairo_pdf, fallback_resolution = 1200

Но я по-прежнему получаю электронные письма от соавторов, в которых говорится, что они не видят цифры, и все же испытывают некоторые затруднения.моменты в презентациях, когда я не могу высказать свою точку зрения, потому что цифры ничего не показывают.

Как, черт возьми, я могу сохранить свои цифры в pdf, не теряя информацию?На данный момент я не знаю, связана ли эта проблема с тем, как фигуры строятся в R, или с проблемой Microsoft Office, имеющей дело с фигурами в формате pdf с полупрозрачностью.Правда в том, что в моей исследовательской сети больше никто не сталкивался с этими проблемами.

FYI

> capabilities()
       jpeg         png        tiff       tcltk         X11        aqua    http/ftp 
       TRUE        TRUE        TRUE        TRUE        TRUE        TRUE        TRUE 
    sockets      libxml        fifo      cledit       iconv         NLS     profmem 
       TRUE        TRUE        TRUE        TRUE        TRUE        TRUE        TRUE 
      cairo         ICU long.double     libcurl 
       TRUE        TRUE        TRUE        TRUE  

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Проблема не связана с R или RStudio.

Объяснение проблемы:

Проблема связана с процессом создания и преобразования встроенных изображений в документы Microsoft Word в Mac OS X, а также с тем, как документ затем обрабатывается Microsoft Word в Windows.

Почему?По сути, PDF является родным компонентом системы рисования Apple Quartz.Внутренняя модель обработки изображений Mac OS X Quartz хорошо коррелирует с графиком объектов PDF, что упрощает отображение и управление встроенными изображениями в формате PDF.

Увы, это не относится к операционной системе Windows.[ Это не критика, а просто наблюдение. ] Механизм pdf не включен в Windows, это дополнение.Таким образом, документ Mac OS X Word не будет корректно отображаться в Microsoft Word для Windows.В дополнение к этому, кажется, что нет никакой полезной опции, чтобы иметь OLE-ссылку на PDF.

Пример:

В Mac OS X можно просто перетащитьи поместите изображение в формате PDF в текстовый документ.Отображаемое изображение будет отображаться как:

enter image description here

Теперь, если мы перейдем на ПК с Windows 10 и откроем документ, мы увидим:

enter image description here

Обходной путь:

Рекомендуется обойтись, чтобы сохранить изображения в формате .png или .jpg и вставить их в документ Word.

library(ggplot2)
library(cowplot)
p <- qplot(Sepal.Length, Petal.Length, data = iris, color = Species, size = Petal.Width, alpha = 0.5)
save_plot("plot.pdf",p)
save_plot("plot.png",p)
save_plot("plot.jpg",p)

Результат:

Microsoft Word в Windows 10

enter image description here

Запрошенное дополнение - EPS

Другой рассматриваемый вариант - использовать

ggsave("plot.eps", p, device=cairo_ps, fallback_resolution = 1200)

, это работает, однако в визуализированных изображениях в Windows 10 были замечены полоски.

Неявное преобразование EPS в EMF из-за атаки безопасностиВектор:

По-видимому, страты связаны с неявным диалогом, в котором Word преобразует изображения EPS в формат EMF из-за ограничений безопасности.

https://support.office.com/en-us/article/support-for-eps-images-has-been-turned-off-in-office-a069d664-4bcf-415e-a1b5-cbb0c334a840

Таким образом, вы можете вставить изображение EPS, но оно, похоже, конвертируется в EMF, чтобы блокировать векто атаки EPS Embedded script.rs.

Пример:

enter image description here

0 голосов
/ 05 марта 2019

Должен ли выходной файл быть PDF?Можете ли вы не просто сохранить график непосредственно как другой тип файла, который поддерживает прозрачность, например .png, и вставить его в свои презентации или файлы Word?

У меня были проблемы с форматированием при вставке изображений PDF в Word до, с прозрачностью или без нее.

...