首页>Program>source

同时生成R中许多点的散点图(使用 ggplot() 例如),可能有许多点在其他点的后面而根本不可见.例如,请参见下图:

这是几十万个点的散点图,但其中大多数都落后于其他点.问题在于将输出转换为矢量文件(例如PDF文件)时,不可见的点使文件很大,并在查看文件时增加了内存和cpu的使用。

一个简单的解决方案是将输出转换为位图图片(例如TIFF或PNG),但它们会失去矢量质量,甚至会更大.我尝试了一些在线PDF压缩程序,但结果与原始文件的大小相同。

有什么好的解决方法吗? 例如,有一些方法可以过滤不可见的点,可能是在生成图时还是在编辑PDF文件之后?

最新回答
  • 2021-1-10
    1 #

    首先,您可以执行以下操作:

    set.seed(42)
    DF <- data.frame(x=x<-runif(1e6),y=x+rnorm(1e6,sd=0.1))
    plot(y~x,data=DF,pch=".",cex=4)
    

    PDF大小:6334 KB

    DF2 <- data.frame(x=round(DF$x,3),y=round(DF$y,3))
    DF2 <- DF[!duplicated(DF2),]
    nrow(DF2)
    #[1] 373429
    plot(y~x,data=DF2,pch=".",cex=4)
    

    PDF大小:2373 KB

    通过舍入可以控制要删除的值.您只需要修改它即可处理不同的颜色。

  • 2021-1-10
    2 #

    只需将绘图保存为高分辨率 png 文件将极大地削减尺寸,同时保持质量绰绰有余.至少我从未有期刊抱怨过我发给他们的任何png,只需确保使用>600 dpi。

  • 2021-1-10
    3 #

    我认为可以对pdf-进行一些后期处理 文件.在Linux中,如果我必须减少pdf,我会这样做

    pdf2ps input.pdf output.ps
    ps2pdf output.ps output.pdf
    

    由于某种原因,它的工作效率很高.

    您可以在https://askubuntu.com/questions/113544/how-to-reduce-pdf-filesize上看到一些讨论.

  • java:无需在控制台中按Enter即可获得按键
  • c:是否可以在GDB调试器中"跳转" /"跳过"?