これは真のバグか何かが不足しているかどうかは分かりませんが、ここにはあります。 私はループで呼び出したいggplot関数(plot_data)を持っています。私はそれ自身のチャンクに関数を含めました。この関数を呼び出すことは、ケース1のループ( "works"というチャンク)でうまく機能します。この場合は、plot_data関数の後にbarplotが続きます。しかし、2番目のケースでは、plot_data()関数の後にヒートマップが続きますが、ヒートマップはodd_data関数を抑制します。これは、plot()またはprint()がplot_data関数の周りで呼び出されたかどうかにかかわらず発生します。knitr:ループ内でggplot2関数を呼び出すと、他のプロット関数を伴ってプロットされない
ggplotsにknitrを動作させる方法はありますか?そして、前の関数呼び出しの出力を抑制する関数呼び出しはどうですか?
次のコードは私のためにエラーを再現:
[preamble omitted]
\begin{document}
<<setup, eval=TRUE, echo=FALSE, cache=FALSE>>=
plot_data <- function(data) {
require(ggplot2)
require(reshape)
d.melt <- melt(data)
ggplot(data=d.melt, aes(x=X2, y=value, group=X1, colour=X1)) + geom_line(size=.5) +
scale_x_discrete("") +
scale_y_continuous("Value")
}
@
<<works, echo=FALSE, results='asis', out.width='.3\\linewidth', dev='pdf', cache=TRUE >>=
set.seed(10010)
data <- matrix(runif(10000, 1,100), ncol=100)
for (i in 1:10) {
ind <- sample(1:100, 10)
plot(plot_data(data[ind,]))
barplot(ind)
}
@
<<doesnt-work, echo=FALSE, results='asis', out.width='.3\\linewidth', dev='pdf', cache=TRUE >>=
set.seed(10010)
data <- matrix(runif(10000, 1,100), ncol=100)
for (i in 1:10) {
ind <- sample(1:100, 10)
plot(plot_data(data[ind,])) # calling print instead of plot doesn't work either
heatmap(data[ind,] )
}
@
\end{document}
これは長いショットですが、 'par(" ask ")' TRUEですか? –
各チャンク内の '<> 'とは何ですか(問題を変更するものではありません)。 'setup'で' eval = TRUE'をセットして、それを呼ぶのをやめてみませんか? –
mnel
sebastian-c:no par( "ask")はfalseと評価されます。 – zzk