[R-br] Msg de Erro em Grafico - In axis(1, x, ...) : "frame.plot" não é um parâmetro gráfico
Fernando Mayer
fernandomayer em gmail.com
Quinta Março 22 18:28:04 BRT 2012
O que está acontecendo envolve um debug(interaction.plot). Em um
pedaço do código interno da função existe esse trecho:
matplot(xvals, cells, ..., type = type, xlim = xlim, ylim = ylim,
xlab = xlab, ylab = ylab, axes = axes, xaxt = "n", col = col,
lty = lty, pch = pch)
if (axes && xaxt != "n") {
axisInt <- function(x, main, sub, lwd, bg, log, asp,
...) axis(1, x, ...)
Repare que o interection.plot() é criado internamente por um matplot()
e os eixos são formados a partir de uma função interna axisInt()
definida ali. Repare que tanto o matplot() quanto esse função
axisInt() (e por consequência axis() também) possuem o argumento "..."
que, de acordo com ?interaction.plot serve para ajustar parâmetros
gráficos.
O detalhe é que quando você especifica frame.plot = FALSE na chamada
do interaction.plot(), esse argumento é passado tanto para matplot(),
quanto para axisInt() --- por causa do "...". E frame.plot é um
argumento válido para matplot(), mas não para axis() (que é o que a
mensagem de erro está dizendo). Por isso o gráfico fica do jeito que
vc quer, mas gera um warning porque o frame.plot está sendo usado
(também) no lugar errado (axis()).
Para resolver isso sem aparecer novamente esse warning, use o
argumento axes = FALSE no lugar de frame.plot = FALSE. Veja que no
matplot() existe uma chamada explicita para esse argumento (axes =
axes). Portanto ele vai ser usado no lugar correto, e não vai mais
passar para axis() (via axisInt()) depois, evitando o warning.
[]s,
---
Fernando Mayer
Universidade Federal de Santa Catarina - UFSC
Departamento de Ecologia e Zoologia - ECZ/CCB
URL: http://sites.google.com/site/fernandomayer
e-mail: fernandomayer [@] gmail.com
2012/3/22 Augusto Ribas <ribas.aca em gmail.com>:
> Ola galera.
> Eu estou com uma duvida que me atormenta aqui.
> Vejam os seguintes graficos:
>
> #CMR
> demo1 <- read.csv("http://www.ats.ucla.edu/stat/data/demo1.csv")
> demo1 <- within(demo1, {
> group <- factor(group)
> time <- factor(time)
> id <- factor(id)
> })
>
> par(mfrow=c(1,2))
> par(cex = .6)
>
> #grafico
> with(demo1, interaction.plot(time, group, pulse,
> ylim = c(5, 20), lty= c(1, 12), lwd = 3,
> ylab = "mean of pulse", xlab = "time", trace.label =
> "group",frame.plot=F))
> axis(1,at=1:3)
> title("1")
>
> with(demo1, interaction.plot(time, group, pulse,
> ylim = c(5, 20), lty= c(1, 12), lwd = 3,
> ylab = "mean of pulse", xlab = "time", trace.label = "group"))
> title("2")
>
> Minha duvida é o seguinte.
> No grafico 1 eu uso o argumento frame.plot=F, no segundo nao uso nada.
> Ai no primeiro ele nao desenha o quadrado em volta do grafico, o argumento
> funciona, mas vem uma msg de erro, "Esse não é um parametro grafico".
> O grafico é pra ficar assim mesmo, mas eu nao entendo pq ele aceita o
> argumento e fala que não existe.
> Alguém saberia dizer o que acontece numa linguagem simples? Que eu ja caçei
> entender isso e não consegui.
> Obrigado
>
> --
> Grato
> Augusto C. A. Ribas
>
> Site Pessoal: http://augustoribas.heliohost.org
> Lattes: http://lattes.cnpq.br/7355685961127056
>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código
> mínimo reproduzível.
Mais detalhes sobre a lista de discussão R-br