【问题标题】:Combining vector and bitmap graphics in a pdf在 pdf 中结合矢量和位图图形
【发布时间】:2011-09-29 12:08:05
【问题描述】:

如下例所示将图像或热图绘制为 pdf 时,它们被保存为矢量对象,其中图像中的每个像素或热图中的单元格都由一个正方形表示。即使在适度的分辨率下,这也会导致不必要的大文件,在某些设备上也会呈现丑陋。 有没有办法让 R 仅将图像区域保存为嵌入 pdf 中的 png 或 jpg,但将文本、轴、注释等保留为矢量图形?

我之所以问,是因为我经常打印 R 图形,有时是在大型海报上,并且想结合两个世界的精华。当然,我可以将整个图形保存为高分辨率 png,但这不会那么优雅,或者手动组合它,例如在Inkscape 中,但它相当乏味。

my.func <- function(x, y) x %*% t(y)
pdf(file="myPlot.pdf")
image(my.func(seq(-10,10,,500), seq(-5,15,,500)), col=heat.colors(100))
dev.off()

感谢您的时间、想法和希望的解决方案!

【问题讨论】:

    标签: r


    【解决方案1】:

    使用?rasterImage,或者在最近的版本中更方便地使用image 和选项useRaster = TRUE

    这将大大减小文件的大小。

    my.func <- function(x, y) x %*% t(y)
    pdf(file="image.pdf")
    image(my.func(seq(-10,10,,500), seq(-5,15,,500)), col=heat.colors(100))
    dev.off()
    
    pdf(file="rasterImage.pdf")
    image(my.func(seq(-10,10,,500), seq(-5,15,,500)), col=heat.colors(100), useRaster = TRUE)
    dev.off()
    
    file.info("image.pdf")$size
    
    file.info("rasterImage.pdf")$size
    

    image.pdf:813229 字节

    rasterImage.pdf 16511 字节

    在此处查看有关新功能的更多详细信息:

    http://developer.r-project.org/Raster/raster-RFC.html

    http://journal.r-project.org/archive/2011-1/RJournal_2011-1_Murrell.pdf

    【讨论】:

    • 太棒了!不知道它可以做到这一点。
    猜你喜欢
    • 2010-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    • 2012-02-13
    • 2012-08-18
    • 1970-01-01
    相关资源
    最近更新 更多