相关疑难解决方法(0)

如何在matplotlib中将数字保存为pdf作为光栅图像

我有一些使用matplotlib制作的复杂图表.使用savefig命令将它们保存为pdf使用矢量格式,pdf需要很长时间才能打开.有没有办法将图形保存为pdf作为光栅图像来解决这个问题?

python pdf raster matplotlib

13
推荐指数
1
解决办法
4141
查看次数

将png图写入R中的pdf文件

我必须创建一堆包含大量数据点的图表.到目前为止,我一直在通过将所有这些绘制成一个pdf文件来做到这一点:

pdf("testgraph.pdf")  
par(mfrow=c(3,3))

for (i in 2:length(names(mtcars))){
  plot(mtcars[,1], mtcars[,i])
}

dev.off()
Run Code Online (Sandbox Code Playgroud)

但是,由于数据点很多,pdf文件会变得太大.由于我对优秀品质不感兴趣,我不在乎我的情节是否是矢量图形.所以我想到创建绘图png,然后将它们插入到pdf文件中.有没有办法做到这一点,除了创建的R图表和将它们插入到pdfknitr(我认为这是太繁琐了这样一个简单的工作)?

pdf plot png r graphic

12
推荐指数
2
解决办法
5252
查看次数

通过过滤隐藏的对象来减少绘图的PDF文件大小

在R中产生许多点的散点图(ggplot()例如使用)时,可能有许多点落后于其他点并且根本不可见.例如,见下图:

在此输入图像描述

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

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

有什么好的解决方案吗?例如,某些方法来过滤不可见的点,可能是在生成绘图期间或之后通过编辑PDF文件?

pdf plot r vector ggplot2

7
推荐指数
1
解决办法
2248
查看次数

在 R 中为 tikzdevice 栅格化 ggplot 图像

我使用 R 分析数据,使用 ggplot 创建绘图,使用 tikzDevice 打印它们,最后使用 Latex 来创建报告。问题是由于乳胶的内存限制,具有许多点的大图会失败。我在这里找到了https://github.com/yihui/tikzDevice/issues/103一个在打印 tikz 文件之前光栅化绘图的解决方案,它允许单独打印点和文本。

require(png)
require(ggplot2)
require(tikzDevice)

## generate data
n=1000000; x=rnorm(n); y=rnorm(n)

## first try primitive
tikz("test.tex",standAlone=TRUE)
plot(x,y)
dev.off()
## fails due to memory
system("pdflatex test.tex")


## rasterise points first
png("inner.png",width=8,height=6,units="in",res=300,bg="transparent")
par(mar=c(0,0,0,0))
plot.new(); plot.window(range(x), range(y))
usr <- par("usr")
points(x,y)
dev.off()
# create tikz file with rasterised points
im <- readPNG("inner.png",native=TRUE)
tikz("test.tex",7,6,standAlone=TRUE)
plot.new()
plot.window(usr[1:2],usr[3:4],xaxs="i",yaxs="i")
rasterImage(im, usr[1],usr[3],usr[2],usr[4])
axis(1); axis(2); box(); title(xlab="x",ylab="y")
dev.off()
## this works
system("pdflatex test.tex")


## now with ggplot
p …
Run Code Online (Sandbox Code Playgroud)

r rasterizing ggplot2 tikzdevice

5
推荐指数
1
解决办法
744
查看次数

使用 PDF 输出设备时光栅化绘图

使用 R 的大家好,

将包含数千个数据点的多个绘图放入单个 PDF 文件中时,该文件可能会变得很大并且需要很长时间才能打开。

下面的文章描述了 Matplotlib 中完全相同的问题,以及一个很好的解决方案: Matplotlib:带有光栅化图的多页 PDF 特别好的一点是,它只光栅化点而不光栅化标签。 http://www.astrobetter.com/blog/2014/01/17/slim-down-your-bloated-graphics/包含一个很好的例子。

我现在正在 R 中寻找类似的解决方案。

graphics plot r rasterizing raster-graphics

5
推荐指数
0
解决办法
969
查看次数