Windows下R图形中的抗锯齿(根据Mac)

时间:2011-05-16 20:44:59

标签: r antialiasing

有没有办法在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下运行。

3 个答案:

答案 0 :(得分:18)

这可能取决于每个平台上渲染引擎的细节,这可能很难修改。我的建议(未经测试,因缺乏时间和访问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)或其他工具来获取所需的抗锯齿版本。

答案 1 :(得分:9)

使用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()

Web输出的替代方案可能是png()图形设备。虽然它是一种栅格格式,但它在紧凑性和Web浏览器兼容性方面得到了很高的评价。

答案 2 :(得分:9)

将Cairo与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()

enter image description here

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()

enter image description here

我正在运行Win 8.1和64位R 3.2.2。