Графики с хорошим разрешением для печати и отображения на экране

Я делал свои графики, используя

dev.new(width=5.8, height=3) 
par(mfrow=c(1,3),mar=c(1,1,2,1),oma=c(4,1,2,0),mgp=c(3, 0.5, 0)) 
plot(...)

копирование и вставка их в Microsoft Word. Они выглядят очень хорошо в Word (я пробовал разные ширины, пока не нашел тот, который работает хорошо), но когда я их распечатал, они выглядели ужасно. После некоторого поиска в Интернете я обнаружил, что разрешение для печати должно быть не менее 300 пикселей на дюйм. Итак, после вечного возни с шириной и высотой я получил код, который заставляет графики выглядеть одинакового размера, но с лучшим разрешением:

png(file="mag_feb.png",width=1800,height=950,res=300)

Теперь они хорошо выглядят при печати, но совсем нечеткие в Word (на экране). Может проблема с размером? Разве нет способа сделать графики, которые хорошо выглядят в печати и на экране? Я уже потратил несколько часов на это и не могу придумать ничего другого, чтобы попробовать, поэтому любая помощь будет очень признательна!

Спасибо!


person sbg    schedule 17.11.2011    source источник
comment
Не уверен конкретно в R, но мой предпочтительный формат для экспорта графиков — это векторные, а не растровые изображения. PDF и EPS обычно являются хорошими форматами для этого, как и SVG, если он его поддерживает.   -  person Flexo    schedule 17.11.2011
comment
Вы можете экспортировать файл Word в PDF для чтения на экране. Это по-прежнему приводит к уродливым изображениям в документе?   -  person Paul Hiemstra    schedule 17.11.2011
comment
да, они выглядят одинаково в word и в PDF   -  person sbg    schedule 17.11.2011
comment
@awoodland, если я сохраню графики в формате PDF, как мне их импортировать в Word, не преобразовывая в растровые изображения?   -  person sbg    schedule 18.11.2011
comment
@sbg - Боюсь, с этим я не могу помочь, я обычно использую LaTeX для всех документов, где мне важно, как они выглядят, по этой и многим другим причинам. (Это также несколько не по теме для SO, я подозреваю)   -  person Flexo    schedule 18.11.2011


Ответы (4)


В исходной команде png есть небольшая ошибка. Попробуй это:

png(file="mag_feb.png", units="in", width=11, height=8.5, res=300)

Теперь ширина и высота указаны в дюймах, а разрешение — в пикселях на дюйм. Раньше параметр res игнорировался.

person bdemarest    schedule 18.11.2011

Вы должны использовать векторный формат, такой как PDF, для графиков, которые вы будете печатать. Если изображения выглядят хорошо при печати, но не в Word, это проблема с функцией уменьшения масштаба Word. Возможно, вы захотите попробовать использовать векторный формат метафайла Windows для переноса данных в Word.

person Michael Hoffman    schedule 17.11.2011
comment
Спасибо за ответы! Первоначально я использовал копию в качестве метафайла, но у меня много графиков в этом текстовом документе, и он просто замедлял слово до такой степени, что оно зависало на биты при прокрутке. Произойдет ли то же самое с win.metafile или PDF? Также как мне получить изображение из PDF в слово? Если я использую нижнюю часть камеры, графики все равно выглядят не очень хорошо... - person sbg; 17.11.2011
comment
win.metafile() вызовет ту же проблему. Ваша конечная проблема в том, что Word не предназначен для размещения высококачественных изображений. Если это вообще возможно, было бы лучше удалить изображения из документа Word и распечатать их отдельно. Или используйте более подходящее программное обеспечение для публикации (LaTeX или Adobe InDesign). - person Michael Hoffman; 17.11.2011
comment
Если ваша работа не требует от вас использования Word, я бы определенно переключился на Latex. Если вы можете использовать R, вы определенно можете использовать Latex. - person Paul Hiemstra; 17.11.2011

Как отмечает @awoodland, вы хотите экспортировать графики в векторном формате.

win.metafile(file="mag_feb.png") # or pdf(), svg(), etc.
par(mfrow=c(1,3),mar=c(1,1,2,1),oma=c(4,1,2,0),mgp=c(3, 0.5, 0)) 
plot(...)
dev.off()
person Ari B. Friedman    schedule 17.11.2011
comment
Спасибо за ответы! Первоначально я использовал копию в качестве метафайла, но у меня много графиков в этом текстовом документе, и он просто замедлял слово до такой степени, что оно зависало на биты при прокрутке. Произойдет ли то же самое с win.metafile или PDF? Также как мне получить изображение из PDF в слово? Если я использую нижнюю часть камеры, графики все равно выглядят не очень хорошо... - person sbg; 17.11.2011
comment
Я думаю, что Word лучше всего поддерживает WMF? Так что вы можете просто импортировать его в слово, используя меню «Вставка» или что-то в этом роде? - person Ari B. Friedman; 17.11.2011

Я надеюсь, что это не поздний ответ, но мой рабочий процесс для сохранения оптимальных изображений из R выглядит следующим образом:

1) скопировать рисунок прямо с графического устройства в файл pdf, используя "dev.copy2pdf":

dev.copy2pdf("image.pdf", width=8.5, height=11)

2) используйте imagemagick для преобразования pdf в png с высоким разрешением, используя эту команду:

convert -density 600 image.pdf image.png

3) необязательно - также с помощью imagemagick удалите все белые рамки и оставьте только то содержимое, которое имеет значение:

convert image.png -trim image_trimmed.png

Надеюсь, поможет.

person thiagoveloso    schedule 12.04.2016
comment
А также мой рабочий процесс, проверенный годами как самый надежный как с точки зрения качества, так и повторяемости. Но нужен линукс бокс. - person cmbarbu; 16.11.2018