Графики с хорошим разрешением для печати и отображения на экране - PullRequest
11 голосов
/ 17 ноября 2011

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

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 (я пробовал разные ширины, пока не нашел тот, который работал хорошо), но когда я их напечатал, они выглядели ужасно.После некоторого поиска в Интернете я обнаружил, что разрешение для печати должно быть не менее 300ppi.Поэтому, возившись с шириной и высотой целую вечность, я разработал код, который делает графики одинакового размера, но с лучшим разрешением:

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

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

Спасибо!

Ответы [ 4 ]

18 голосов
/ 19 ноября 2011

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

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

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

4 голосов
/ 17 ноября 2011

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

3 голосов
/ 17 ноября 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()
1 голос
/ 12 апреля 2016

Я надеюсь, что это не поздний ответ, но мой рабочий процесс для сохранения оптимальных изображений из R:.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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...