Подтвердить что ты не робот

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

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

.... тогда как в то время как текст антиалиасов версии Windows не является анти-алиасом фактической графики, как видно из точек стояка и сетки: Windows Version

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

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.

4b9b3361

Ответ 1

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

  • установите пакет 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) или какой-либо другой инструмент, чтобы получить необходимую вам сглаженную версию.

Ответ 2

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

Ответ 3

Установка cairoDevice больше не нужна для использования Каира с устройствами 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.

Ответ 4

Вам не нужно проходить через файлы, вы можете просто установить cairoDevice, как это было предложено Ben Bolker, а затем вызвать функцию Cairo(), которая даст вам полностью сглаженное окно сюжета под Windows (хотя и медленнее).