我在 *.Rnw.log 中遇到以下错误:
Error: chunk 3 (label=printgraph)
Error in grid.Call.graphics("L_text", as.graphicsAnnot(x$label), x$x, :
Metric information not available for this family/device
Run Code Online (Sandbox Code Playgroud)
仅在 Lyx 中并取决于声明
+ scale_y_log10(ylim=c(0.025,5))
Run Code Online (Sandbox Code Playgroud)
在以下示例代码中:
<<Code, tidy=T, sanitize=TRUE>>=
require(ggplot2)
df.qdf=data.frame(T = c(0 ,1,2 ,0 ,1.5,2.5)
,q.500 = c(0.025,2,1 ,0.025, 4,2 )
,q.025 = 0.5*c(0.025,2,1 ,0.025, 4,2 )
,q.975 = 1.5*c(0.025,2,1 ,0.025, 4,2 )
,Occasion = c( 1,1,1 ,2 , 2,2 )
)
theme_set(theme_bw())
Graph=(qplot(T,q.500,data=df.qdf)
+geom_smooth(aes(ymin=q.025,ymax=q.975)
,data=df.qdf
,stat='identity'
,fill='blue')
+ylab('Response')
+xlab('Time [h]')
+facet_grid(facet=.~Occasion)
) +scale_y_log10(ylim=c(0.025,5))
@
<<printgraph,echo=FALSE,fig=TRUE,width=10,height=7,sanitize=TRUE>>=
print(Graph)
@
Run Code Online (Sandbox Code Playgroud)
在下面
代码工作正常
+scale_y_log10(ylim=c(0.025,5))我已经试过了
sanitize=TRUE
options(device = function(...) { .Call("R_GD_nullDevice", PACKAGE = "grDevices") })
Run Code Online (Sandbox Code Playgroud)
和
dev.off()
Run Code Online (Sandbox Code Playgroud)
(建议在http://www.inside-r.org/questions/problems-ggplot-and-pgfsweave)
这些都没有帮助。请!
我必须承认,这又是我的直接错(间接地可能是 Sweave 的错)。我对null graphics deviceR中无证的`` ''过于大胆和乐观,Cameron被我误导了:
http://yihui.name/en/2010/12/a-special-graphics-device-in-r-the-null-device/
虽然这个空设备可以稍微加快 Sweave 的速度,避免产生不必要的图形文件,但它似乎无法处理所有的图形系统。当我编写该解决方案时,我没有仔细测试ggplot2(即网格图形)。
> .Call("R_GD_nullDevice", PACKAGE = "grDevices")
空值
> 打印(图形)
grid.Call.graphics("L_text", as.graphicsAnnot(x$label), x$x, 中的错误:
此系列/设备的指标信息不可用
> dev.off()
空设备
1
目前,您可以将其放在 Sweave 文档的第一个代码块中:
选项(设备 = pdf)
这将显示一个冗余的 PDF 文件 ( Rplots.pdf),但无论如何都可以解决您的问题。
稍后我将与 pgfSweave 作者或 Sweave 作者讨论。这在 Sweave 中似乎很容易改进,但是这个问题已经存在很多年了。
| 归档时间: |
|
| 查看次数: |
1348 次 |
| 最近记录: |