gpt4 book ai didi

r - ggplot 2's continuous color scale incompatible with knitr' 是 tikzDevice 吗?

转载 作者:行者123 更新时间:2023-12-02 18:14:31 24 4
gpt4 key购买 nike

我已经使用 knitr 与 R 基础图形和 tikz 输出有一段时间了,并且想尝试一下 ggplot2。但是,这个最小的示例无法使用 knitr 1.0.5 产生任何输出:

\documentclass{article}
\begin{document}
<<dev = 'tikz'>>=
library(ggplot2)
d = data.frame(a = c(1, 2, 3), b = c(4, 5, 6), c = c(7, 8, 9))
ggplot(d, aes(a, b, color = c)) + geom_point()
@
\end{document}

相反,它会失败,并显示消息UseMethod("深度")中的错误:没有适用于“深度”的方法应用于类“NULL”的对象。在 R 中执行代码或选择 png 设备将产生预期的图形。忽略颜色美学或分解 c 也适用于 tikzDevice,因此连续色阶似乎是问题所在。

我做错了什么吗,或者这是一个错误?

最佳答案

通过将 dev.off() 添加到代码块的末尾,我可以让 tikzDevice 使用您的代码。例如:

cat("
\\documentclass{article}
\\begin{document}
<<dev = 'tikz'>>=
library(ggplot2)
d = data.frame(a = c(1, 2, 3), b = c(4, 5, 6), c = c(7, 8, 9))
ggplot(d, aes(a, b, color = c)) + geom_point()
dev.off()
@
\\end{document}
", "test_works.Rtex")
knit("test_works.Rtex")

工作正常。

我还注意到,如果通过(原始)代码上的事件 R session 调用 knit(),我会留下一个事件的 tikz 设备...

cat("
\\documentclass{article}
\\begin{document}
<<dev = 'tikz'>>=
library(ggplot2)
d = data.frame(a = c(1, 2, 3), b = c(4, 5, 6), c = c(7, 8, 9))
ggplot(d, aes(a, b, color = c)) + geom_point()
@
\\end{document}
", file = "test_fails.Rtex")
knit("test_fails.Rtex")
dev.list()

关于r - ggplot 2's continuous color scale incompatible with knitr' 是 tikzDevice 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14688829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com