Discussion:
[R-es] ciclo for para gráficos
j***@gmail.com
2016-10-15 02:15:02 UTC
Permalink
Estimados

Tengo un problema que resumo en lo siguiente:

Primero hago un bucle for, algo como puede ser este esquema

For( i in datos)
{
Preparo para gráfico 1 <- ……..
Preparo para gráfico 2 <- ……..
Preparo para gráfico 3 <- ……..
Preparo para gráfico 4 <- ……..
}

Hasta aquí no hay errores (R procesa)

Parte dos, preparo un gráfico para un elemento de la lista, donde están los cuatro gráficos que deseo dentro de un par(mfrow=c(2,2))

Los cuatro gráficos se crean correctamente dentro de un gráfico que los engloba.

Parte tres, dentro del ciclo for coloco la parte de gráfico, genéticamente es algo como:

For( i in datos)
{
Preparo para gráfico 1 <- ……..
Preparo para gráfico 2 <- ……..
Preparo para gráfico 3 <- ……..
Preparo para gráfico 4 <- ……..

par(mfrow=c(2,2))

plot(para gráfico 1)
plot(para gráfico 2)
plot(para gráfico 3)
plot(para gráfico 4)

}

Esto da algo más de 200 gráficos compuestos por cuatro cada uno.

En principio funciona todo, salvo que luego de realizar varios gráficos el ciclo da el siguiente error

Error in plot.window(...) : se necesitan valores finitos de 'xlim'
Además: Warning messages:
1: In max(vertex.size) : ningun argumento finito para max; retornando -Inf
2: In min(x) : ningún argumento finito para min; retornando Inf
3: In max(x) : ningun argumento finito para max; retornando -Inf
4: In min(x) : ningún argumento finito para min; retornando Inf
5: In max(x) : ningun argumento finito para max; retornando -Inf

Me llama la atención, en la preparación de datos el ciclo for corre para todos, pero luego al graficar y correr cierta cantidad de elementos del ciclo aparece el error, cuando ya grafico varios.

Por las dudas, son gráficos con igraph, donde el ciclo es sobre elementos del vertex (un tamaño tiene porque existe).

¿Alguna idea?

Javier Rubén Marcuzzi


[[alternative HTML version deleted]]
eric
2016-10-15 02:44:30 UTC
Permalink
Hola javier, nunca he hecho un curso formal de R, asi es que no se a
ciencia cierta si puede manejar algo como "infinito" en terminos
algebraicos sin arrojar un "error", pero se me ocurre que si, asi es que
el problema podria ser que efectivamente tienes infinitos en la
preparacion de datos, pero R no los reporta porque no serian un error,
sin embargo, al graficar no puede hacer lo mismo, y en ese caso pasaria
a ser un "error" y entonces lo reportaria .... es una idea ...

para chequearlo puedes correr la preparacion de datos sola y mirar si
estan ahi los infinitos ...

slds, eric.
Post by j***@gmail.com
Estimados
Primero hago un bucle for, algo como puede ser este esquema
For( i in datos)
{
Preparo para gráfico 1 <- ……..
Preparo para gráfico 2 <- ……..
Preparo para gráfico 3 <- ……..
Preparo para gráfico 4 <- ……..
}
Hasta aquí no hay errores (R procesa)
Parte dos, preparo un gráfico para un elemento de la lista, donde están los cuatro gráficos que deseo dentro de un par(mfrow=c(2,2))
Los cuatro gráficos se crean correctamente dentro de un gráfico que los engloba.
For( i in datos)
{
Preparo para gráfico 1 <- ……..
Preparo para gráfico 2 <- ……..
Preparo para gráfico 3 <- ……..
Preparo para gráfico 4 <- ……..
par(mfrow=c(2,2))
plot(para gráfico 1)
plot(para gráfico 2)
plot(para gráfico 3)
plot(para gráfico 4)
}
Esto da algo más de 200 gráficos compuestos por cuatro cada uno.
En principio funciona todo, salvo que luego de realizar varios gráficos el ciclo da el siguiente error
Error in plot.window(...) : se necesitan valores finitos de 'xlim'
1: In max(vertex.size) : ningun argumento finito para max; retornando -Inf
2: In min(x) : ningún argumento finito para min; retornando Inf
3: In max(x) : ningun argumento finito para max; retornando -Inf
4: In min(x) : ningún argumento finito para min; retornando Inf
5: In max(x) : ningun argumento finito para max; retornando -Inf
Me llama la atención, en la preparación de datos el ciclo for corre para todos, pero luego al graficar y correr cierta cantidad de elementos del ciclo aparece el error, cuando ya grafico varios.
Por las dudas, son gráficos con igraph, donde el ciclo es sobre elementos del vertex (un tamaño tiene porque existe).
¿Alguna idea?
Javier Rubén Marcuzzi
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
https://stat.ethz.ch/mailman/listinfo/r-help-es
JA Palazón
2016-10-15 09:46:26 UTC
Permalink
Hola:

Efectivamente, cuando consigues este mensaje es que no tienes
datos en el conjunto.
plot( NULL )
Error in plot.window(...) : se necesitan valores finitos de 'xlim'
Además: Warning messages:
1: In min(x) : ningún argumento finito para min; retornando Inf
2: In max(x) : ningun argumento finito para max; retornando -Inf
3: In min(x) : ningún argumento finito para min; retornando Inf
4: In max(x) : ningun argumento finito para max; retornando -Inf
Hola javier, nunca he hecho un curso formal de R, asi es que no se a
ciencia cierta si puede manejar algo como "infinito" en terminos
algebraicos sin arrojar un "error", pero se me ocurre que si, asi es
que el problema podria ser que efectivamente tienes infinitos en la
preparacion de datos, pero R no los reporta porque no serian un error,
sin embargo, al graficar no puede hacer lo mismo, y en ese caso
pasaria a ser un "error" y entonces lo reportaria .... es una idea ...
para chequearlo puedes correr la preparacion de datos sola y mirar si
estan ahi los infinitos ...
slds, eric.
Post by j***@gmail.com
Estimados
Primero hago un bucle for, algo como puede ser este esquema
For( i in datos)
{
Preparo para gráfico 1 <- ……..
Preparo para gráfico 2 <- ……..
Preparo para gráfico 3 <- ……..
Preparo para gráfico 4 <- ……..
}
Hasta aquí no hay errores (R procesa)
Parte dos, preparo un gráfico para un elemento de la lista, donde
están los cuatro gráficos que deseo dentro de un par(mfrow=c(2,2))
Los cuatro gráficos se crean correctamente dentro de un gráfico que los engloba.
Parte tres, dentro del ciclo for coloco la parte de gráfico,
For( i in datos)
{
Preparo para gráfico 1 <- ……..
Preparo para gráfico 2 <- ……..
Preparo para gráfico 3 <- ……..
Preparo para gráfico 4 <- ……..
par(mfrow=c(2,2))
plot(para gráfico 1)
plot(para gráfico 2)
plot(para gráfico 3)
plot(para gráfico 4)
}
Esto da algo más de 200 gráficos compuestos por cuatro cada uno.
En principio funciona todo, salvo que luego de realizar varios
gráficos el ciclo da el siguiente error
Error in plot.window(...) : se necesitan valores finitos de 'xlim'
1: In max(vertex.size) : ningun argumento finito para max; retornando -Inf
2: In min(x) : ningún argumento finito para min; retornando Inf
3: In max(x) : ningun argumento finito para max; retornando -Inf
4: In min(x) : ningún argumento finito para min; retornando Inf
5: In max(x) : ningun argumento finito para max; retornando -Inf
Me llama la atención, en la preparación de datos el ciclo for corre
para todos, pero luego al graficar y correr cierta cantidad de
elementos del ciclo aparece el error, cuando ya grafico varios.
Por las dudas, son gráficos con igraph, donde el ciclo es sobre
elementos del vertex (un tamaño tiene porque existe).
¿Alguna idea?
Javier Rubén Marcuzzi
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
https://stat.ethz.ch/mailman/listinfo/r-help-es
_______________________________________________
R-help-es mailing list
https://stat.ethz.ch/mailman/listinfo/r-help-es
--
___________________________________________________________
José Antonio Palazón Ferrando
Profesor Titular. Departamento de Ecología e Hidrología.
Facultad de Biología. Universidad de Murcia.
Campus Universitario de Espinardo
30100 MURCIA-SPAIN
Telf: +34 868 88 49 80
Fax : +34 868 88 39 63
Email: ***@um.es
http://webs.um.es/palazon


[[alternative HTML version deleted]]
Loading...