2016-03-15 115 views
1

我使用tikzDevice包來獲取R中的乳膠友好圖。我有從下圖的頂部和底部排出過剩的空格麻煩: Exampleggplot2和TikzDevice - 刪除空白

我一直在使用par(mar)嘗試,但它似乎並沒有與ggplot2工作。另外,theme(plot.margins)也似乎沒有反應。我嘗試用theme(aspect.ratio)來改變圖形的長寬比,因此引入了空格。 有什麼建議嗎? 謝謝!

編輯:這裏是一個MWE:

library(tikzDevice) 
library(reshape2) 
x = seq(0,1,0.1) 
y1 = x^2+2*x+7 
y2= x^+2*x+2 

df = data.frame(x,y1,y2) 
df <- melt(df, id.vars=c("x")) 
names(df) <- c("x","$latex~Name$","value") 
plot <- ggplot(df,aes(x=x,y=value,color=`$latex~Name$`,group=`$latex~Name$`)) + geom_line() + 
    theme(aspect.ratio = 0.4) 
plot 

tikzDevice(file="mweTex.tex") 
plot 
dev.off() 
+0

一些代碼如何?不知道你在這裏做什麼,情節看起來打破了我。 –

+0

另請參閱http://stackoverflow.com/a/36029298/471093 – baptiste

回答

0

這個問題似乎通過影響圖像的邊框部分tikz語句引起的。由於在tikzDevice中似乎沒有任何選項來最小化空白,所以我不得不考慮別的。我設法在你MWE的末尾添加下列R-代碼來解決所產生的tikz文件:

# remove all lines that invisibly mess up the bounding box 
lines <- readLines(con="mweTex.tex") 
lines <- lines[-which(grepl("\\path\\[clip\\]*", lines,perl=F))] 
lines <- lines[-which(grepl("\\path\\[use as bounding box*", lines,perl=F))] 
writeLines(lines,con="mweTex.tex") 

我測試過它在你的MWE:

result image 左邊的圖像是沒有修復,正確的圖像與修復。