/ / Gerando beanplots em um forloop com LaTeX - r, latex, sweave

Gerando beanplots em um forloop com LaTeX - r, latex, sweave

Eu estou tentando gerar automaticamente um número debeanplots com um forloop e produzindo-os em um documento LaTeX. Começando com um quadro de dados (que gera com sucesso os gráficos de beans), estou usando o código abaixo. A intenção é produzir beanplots consecutivos no documento. Eu posso fazer isso escrevendo um comando beanplot para cada plot desejado (funciona bem), mas obviamente isso seria muito melhor se eu pudesse fazê-lo com um forloop. No entanto, quando tento usar um forloop, em vez de enviar 9 diagramas, ele só mostra o último gráfico. Alguma idéia sobre o porquê disso? Eu tentei usar fig.keep = "all" e plot.new (), nenhum dos dois ajudou. Compilando com Sweave. Obrigado!

<<beanplots,fig.keep="all">>=
#fig.keep="all" <- this did not help
suppressPackageStartupMessages(require(beanplot))
for (i in length(unique(Data[["Days"]]))){
# plot.new()   ##  this did not help either
beanplot(Readings~FactorLevels,
data=subset(x=Data, subset=(Data[["Days"]]==i)),
main=paste("Day",i,sep=" "),
cex.axis=0.7)
}
@

Respostas:

0 para resposta № 1

beanplot trabalha com a biblioteca de gráficos do Lattice. Como tal, não produz automaticamente gráficos ao executar de forma não interativa. Você deve ligar explicitamente print() no objeto retornado pela chamada para produzir um gráfico. Experimentar

<<beanplots,fig.keep="all">>=
#fig.keep="all" <- this did not help
suppressPackageStartupMessages(require(beanplot))
for (i in unique(Data[["Days"]])){
# plot.new()   ##  this did not help either
print(beanplot(Readings~FactorLevels,
data=subset(x=Data, subset=(Data[["Days"]]==i)),
main=paste("Day",i,sep=" "),
cex.axis=0.7))
}
@