使用 Sweave 包含格子图形 - 颜色问题

使用 Sweave 包含格子图形 - 颜色问题

我使用 Sweave 和 R 包 nlme:当包含格子图形(封装在命令中print())时,.eps生成的文件都是黑白的。原始图形(出现在 R 中)和保存的.pdf文件是彩色的,但不是.eps

当包含不使用 lattice 包的图形时,文件.eps没有问题。我尝试过一步包含 lattice 图形,例如:

\begin{figure}[!h]  
\begin{center}  
\setkeys{Gin}{width=0.5\textwidth}  
<<echo=FALSE,fig=TRUE,width=4,height=4>>=
print(      plot(intervals(sulf1comp.lis),layout=c(3,1,1)#,main="Parameter Estimates     &   95% CI"  
        #,sub="Sulfadoxine: Bi-Exponential nlsList Model"  
        ))  
@ 
% 
\caption{Parameter Estimates and 95\% Confidence Intervals for Individual Model Fits       \label{label sulf_fig2}}  
 %\label{fig:}  
\end{center}  
\end{figure}  

具体分为两个步骤:

<<figa,echo=FALSE,fig=TRUE,include=FALSE>>=  
 print(plot(sulf1comp.nls,pid~resid(.,type="p"),abline=0,cex.axis=0.7,  
 #,main="Plot of Residuals by Subject (Sulfadoxine: NLS Model)"  
        ))     
@ 
%    
\begin{figure}[!h]  
\begin{center}  
\includegraphics*[height=0.5\textwidth]{analysisinprogress_sw-figa.pdf}  
 \caption{Residuals by Subject ID: Sulfadoxine Bi-Exponential NLS Model \label{label       sulf_fig1}}  
 \end{center}  
\end{figure}
%  

不使用 fig=T 命令,例如:

 <<figa,echo=FALSE>>=    
 postscript("filename.eps")    
print(plot(sulf1comp.nls,pid~resid(.,type="p"),abline=0,cex.axis=0.7,    
 #,main="Plot of Residuals by Subject (Sulfadoxine: NLS Model)"    
        ))      
 dev.off()     
 @    
 %    

还有其他各种可能性。我绞尽脑汁想弄清楚我做错了什么。任何建议都将不胜感激。

答案1

黑白是的默认设置eps,而彩色是输出的默认设置pdf

我不确定设置

lattice.options(default.theme = standard.theme(color = TRUE))

可以解决你的问题,或者等价地(从Sweave 常见问题解答

library(lattice)  
ltheme <- canonical.theme(color = TRUE)      ## in-built B&W theme  
ltheme$strip.background$col <- "transparent" ## change strip bg  
lattice.options(default.theme = ltheme)      ## set as default  

但是你有什么特别的理由更喜欢 Postscript 而不是 PDF 吗?我总是发现后者能产生非常漂亮的图形。

相关内容