Сглаживание в графике R под Windows (как для Mac)

есть ли способ построить сглаженную графику из версии R для Windows? Как вы можете видеть из двух версий ниже, версия R для Mac печатает графику со сглаживанием.... Mac Version

....в то время как версия для Windows сглаживает текст, она не сглаживает реальную графику, как это видно по стоякам и сетке: Версия для Windows

Вот кстати код:

library(scatterplot3d) 
attach(mtcars) 
s3d <-scatterplot3d(wt,disp,mpg, pch=16, highlight.3d=TRUE,
  type="h", main="3D Scatterplot")
fit <- lm(mpg ~ wt+disp) 
s3d$plane3d(fit)

Мне нужно максимально возможное качество для публикации веб-страницы. Я использую Windows 7 и извлекаю данные из RBloomberg, который работает только под Windows.


person Thomas Browne    schedule 16.05.2011    source источник


Ответы (3)


Скорее всего, это будет зависеть от деталей механизма рендеринга на каждой платформе, которые сложно изменить. Мои предложения (непроверенные, за неимением времени и доступа к винде):

  • установите пакет cairoDevice и используйте Cairo_png(). Согласно документации:
 This functions the same as any other R graphics device. You may
 use the conventional plot commands and expect essentially the same
 output, except that everything is anti-aliased (similar to other
 vector-based devices like Quartz). Alpha-blending is supported, as
 is enhanced interactivity via ‘getGraphicsEvent’. The device
 should work the same across all supported platforms (Mac, Windows,
 and Linux).
  • Визуализируйте PNG с гораздо более высоким разрешением (или выведите данные из R в виде PDF) и используйте ImageMagick (convert) или какой-либо другой инструмент, чтобы получить нужную вам версию со сглаживанием.
person Ben Bolker    schedule 16.05.2011
comment
Вы также можете выводить в формате SVG с помощью Cairo, что может обеспечить превосходный результат. - person James; 17.05.2011
comment
У меня (наконец-то) это работает. Но есть ли способ сохранять файлы или копировать и вставлять из изображения экрана, как это можно сделать на стандартном устройстве? Спасибо. - person Thomas Browne; 12.08.2011
comment
После установки cairoDevice вы можете просто вызвать Cairo() для окна графика, сглаженного в MS Windows. - person Thomas Browne; 04.10.2015

Установка cairoDevice больше не требуется для использования Cairo с png устройствами. Теперь вы можете указать type='cairo' при открытии устройства. Сравните следующее:

png('test1.png', 500, 500)
s3d <- scatterplot3d(wt,disp,mpg, pch=16, highlight.3d=TRUE,
                     type="h", main="3D Scatterplot")
fit <- lm(mpg ~ wt+disp) 
s3d$plane3d(fit)
dev.off()

введите описание изображения здесь

png('test2.png', 500, 500, type='cairo')
s3d <- scatterplot3d(wt,disp,mpg, pch=16, highlight.3d=TRUE,
                     type="h", main="3D Scatterplot")
fit <- lm(mpg ~ wt+disp) 
s3d$plane3d(fit)
dev.off()

введите описание изображения здесь

Я использую Win 8.1 и 64-битную версию R 3.2.2.

person jbaums    schedule 13.01.2016

Используйте векторное устройство, такое как pdf. Сначала убедитесь, что у вас есть такая возможность, поэтому неудивительно, что функция capabilities — это то, что нужно проверить. Если у вас есть pdf, просто сделайте это:

pdf(file="out_graph.pdf")
s3d <-scatterplot3d(wt,disp,mpg, pch=16, highlight.3d=TRUE,
  type="h", main="3D Scatterplot")
fit <- lm(mpg ~ wt+disp) 
s3d$plane3d(fit)
dev.off()

Альтернативой веб-вывода может быть графическое устройство png(). Он получает высокие оценки за компактность и совместимость с веб-браузерами, несмотря на то, что это растровый формат.

person IRTFM    schedule 16.05.2011
comment
@Joris ... Я думал, что интерфейс SO мог выбрать формат самостоятельно. Я не думаю, что он берет мои PDF-файлы и сохраняет их в этом формате, когда я их загружаю. (Но здесь я могу ошибаться.) - person IRTFM; 17.05.2011
comment
ОП сказал, что они нужны ему для отображения в Интернете, поэтому ему, вероятно, нужен растровый формат. - person Ben Bolker; 17.05.2011
comment
Я был бы ленив и сделал бы PDF, а затем использовал ImageMagick, чтобы преобразовать его в png с высоким разрешением. - person Roman Luštrik; 17.05.2011
comment
@DWin: я бы тоже так подумал, но разница между верхним и нижним графиком очевидна, и оба в формате png. - person Joris Meys; 17.05.2011
comment
@ Джорис. Правильно. Значит проблема с выводом по умолчанию на экран графического устройства в Win7. Ему нужно принудить формат к чему-то другому или применить настройки, улучшающие разрешение. - person IRTFM; 17.05.2011