簡體   English   中英

R的tikzDevice如何處理光柵圖像?

[英]How does R's tikzDevice deal with raster images?

我讀過,如果tikz拍攝光柵圖像,它將被存儲為png。 有了這個,tikz就會在其周圍生成其余圖形,並將光柵圖像再次包含在最終的tex文件中。

現在我有以下內容:

pic <- T
if(pic)
{
  tikz(file=paste(plotpath,"Rohdaten_S1_S2_D21.tex",sep=""),width=width,height=height,engine = "pdftex",)
  #png(filename=paste(plotpath,"Rohdaten_S1_S2_D6.png",sep=""),width=width,height=height,res=res,units="in")
  par(mfrow=c(2,1),mar=c(1.1,3,2,0),mgp=c(1.5,0.5,0),ps=f.size,cex=1,xaxt="n")
}
if(!pic) par(mfrow=c(2,1),mar=c(1,4,3,0))
for(i in 1:2)
{
  x <- sensors[[i]]$time
  y <- sensors[[i]]$depth
  z <- sensors[[i]]$velo
  image(x,y,z)
  #   plot.image(x,y,z
#              ,xlim=c(max(x)-400,max(x)),zlim=2*c(-1,1)
#              ,xlab="",ylab="$d/\\mathrm{m}$",zlab="$v/(\\mathrm{mm/s})$"
#              ,z.adj=c(0,0),ndz=5,z.cex=1
#              )  
  abline(v=(1:10)/0.026+par("usr")[1],lty=2)
  if(!pic) abline(h=(1:floor(max(y/0.02)))*0.02)
  mtext(text=paste("Sensor",i),side=3,line=0.1,adj=0)
  par(mar=c(3,3,0.1,0),xaxt="s")
}
title(xlab="t/s")
if(pic) dev.off()

即使是簡單的image()函數也會產生100MB的大.tex文件。 沒有產生png,所有內容都在.tex文件中嗎?

我究竟做錯了什么? 是否有要設置為TRUE的開關? 我要怎么做才能使柵格圖像與漂亮的文本分開。

謝謝您的幫助。

解決方案很簡單,但並不明顯。

  1. Rimage()函數在第一個實例中生成矢量圖形。 有一個開關image(...,useRaster = T)通過它可以強制image()函數生成光柵圖形。
  2. image()函數涉及規則的網格(二次像素)。 否則會發生錯誤。

如何獲得常規網格?

假設您有一個坐標為x [],y []和標量矩陣為z [,]的圖像。 然后可以計算重新采樣的常規網格:

x.new<-seq(min(xlim),max(xlim),length.out=dim.max[1])
y.new<-seq(min(ylim),max(ylim),length.out=dim.max[2])

z<-apply(z,2,function(y,x,xout) return(approx(x,y,xout=xout+min(diff(x))/2,method="constant",rule=2)$y),x,x.new)
z<-t(apply(z,1,function(y,x,xout) return(approx(x,y,xout=xout+min(diff(x))/2,method="constant",rule=2)$y),y,y.new))

tikz(file ='a.tex',width = 2, height = 2)
    image(x,y,z,useRaster = T)
dev.off()

重要的是rox approx()函數中的method = "constant"rule = 2語句。 這些使“轉移”到常規網格。

應用所有這些和tikz()會將圖片拆分為a.tex文件和a_ras1.png文件。

我希望這將有助於對R進行編程,並使用tikzDevice為tex文檔生成圖片。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM