Eva Prieto Castro
2013-Mar-05 17:41 UTC
[R-es] Sencilla tabla de resultados : cómo construirla?
Hola, Por favor, ¿alguien me puede auxiliar?. Tengo un layout con varias regiones/zonas en la ventana gráfica. En cada una pongo un plot (en unos casos el plot es visible y en otros sólo lo utilizo como comodín para escribir algo en los márgenes). En una de las regiones tengo que mostrar datos numéricos en una tabla con bordes (y con líneas que separen las filas y las columnas). Es una tabla simple (p.e. 2 filas y 6 columnas). El problema está en que si utilizo la función addtable2plot del paquete plotrix, dependiendo de lo extenso que sea el texto de las filas, puede haber casos en los cuales aparezca cortada por la derecha la tabla, porque no hay manera de pasarle un x inicial y un x final al cual la función se ajuste. ¿Se os ocurre alguna idea?. Gracias. Eva [[alternative HTML version deleted]]
Marcelino de la Cruz
2013-Mar-05 18:08 UTC
[R-es] Sencilla tabla de resultados : cómo construirla?
Podrías hacerte una función que 1) evalúe la máxima longitud del texto que aparecerá en las filas y que 2) modifique el cex de aaddtable2plot ó 3) "abrevie" lo que finalmente se escribirá. El 05/03/2013 18:41, Eva Prieto Castro escribió:> Hola, > > Por favor, ¿alguien me puede auxiliar?. Tengo un layout con varias regiones/zonas en la ventana gráfica. En cada una pongo un plot (en unos casos el plot es visible y en otros sólo lo utilizo como comodín para escribir algo en los márgenes). En una de las regiones tengo que mostrar datos numéricos en una tabla con bordes (y con líneas que separen las filas y las columnas). Es una tabla simple (p.e. 2 filas y 6 columnas). El problema está en que si utilizo la función addtable2plot del paquete plotrix, dependiendo de lo extenso que sea el texto de las filas, puede haber casos en los cuales aparezca cortada por la derecha la tabla, porque no hay manera de pasarle un x inicial y un x final al cual la función se ajuste. > > ¿Se os ocurre alguna idea?. > > Gracias. > > Eva > > [[alternative HTML version deleted]] > > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es-- Marcelino de la Cruz Rot Depto. de Biología Vegetal Universidad Politécnica de Madrid Madrid, España [[alternative HTML version deleted]]
Eva Prieto Castro
2013-Mar-05 19:14 UTC
[R-es] Sencilla tabla de resultados : cómo construirla?
Gracias, Marcelino. ¿Y qué criterio utilizo para ajustar ese cex?. Un saludo --- El mar, 5/3/13, Marcelino de la Cruz <marcelino.delacruz@upm.es> escribió: De: Marcelino de la Cruz <marcelino.delacruz@upm.es> Asunto: Re: [R-es] Sencilla tabla de resultados : cómo construirla? Para: "Eva Prieto Castro" <evapcastro@yahoo.es> CC: "Lista R" <r-help-es@r-project.org> Fecha: martes, 5 de marzo, 2013 19:08 Podrías hacerte una función que 1) evalúe la máxima longitud del texto que aparecerá en las filas y que 2) modifique el cex de aaddtable2plot ó 3) "abrevie" lo que finalmente se escribirá. El 05/03/2013 18:41, Eva Prieto Castro escribió: Hola, Por favor, ¿alguien me puede auxiliar?. Tengo un layout con varias regiones/zonas en la ventana gráfica. En cada una pongo un plot (en unos casos el plot es visible y en otros sólo lo utilizo como comodín para escribir algo en los márgenes). En una de las regiones tengo que mostrar datos numéricos en una tabla con bordes (y con líneas que separen las filas y las columnas). Es una tabla simple (p.e. 2 filas y 6 columnas). El problema está en que si utilizo la función addtable2plot del paquete plotrix, dependiendo de lo extenso que sea el texto de las filas, puede haber casos en los cuales aparezca cortada por la derecha la tabla, porque no hay manera de pasarle un x inicial y un x final al cual la función se ajuste. ¿Se os ocurre alguna idea?. Gracias. Eva [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es -- Marcelino de la Cruz Rot Depto. de Biología Vegetal Universidad Politécnica de Madrid Madrid, España [[alternative HTML version deleted]]
Carlos Ortega
2013-Mar-05 19:37 UTC
[R-es] Sencilla tabla de resultados : cómo construirla?
Hola Eva, Haz una prueba, incluye un texto con varias palabras y vas viendo si se descuadra o no. Cuando se descuadre, cambias el cex hasta que quede ajustado. Y repites con otras palabras (más cantidad o menos cantidad y con diferente tipo de longitud de palabras: cortas y largas)... Con estos experimentos tendrás una heurística del tipo de cex que mejor se puede ajustar para cada caso. Y con esta heurística construyes tu función... Saludos, Carlos Ortega www.qualityexcellence.es El 5 de marzo de 2013 20:14, Eva Prieto Castro <evapcastro@yahoo.es>escribió:> > Gracias, Marcelino. ¿Y qué criterio utilizo para ajustar ese cex?. > > Un saludo > > --- El mar, 5/3/13, Marcelino de la Cruz <marcelino.delacruz@upm.es> > escribió: > > De: Marcelino de la Cruz <marcelino.delacruz@upm.es> > Asunto: Re: [R-es] Sencilla tabla de resultados : cómo construirla? > Para: "Eva Prieto Castro" <evapcastro@yahoo.es> > CC: "Lista R" <r-help-es@r-project.org> > Fecha: martes, 5 de marzo, 2013 19:08 > > > > > > > > Podrías hacerte una función que 1) > evalúe la máxima longitud del texto que aparecerá en las filas y > que 2) modifique el cex de aaddtable2plot ó 3) "abrevie" lo que > finalmente se escribirá. > > > > El 05/03/2013 18:41, Eva Prieto Castro escribió: > > > > Hola, > > Por favor, ¿alguien me puede auxiliar?. Tengo un layout con varias > regiones/zonas en la ventana gráfica. En cada una pongo un plot (en unos > casos el plot es visible y en otros sólo lo utilizo como comodín para > escribir algo en los márgenes). En una de las regiones tengo que mostrar > datos numéricos en una tabla con bordes (y con líneas que separen las filas > y las columnas). Es una tabla simple (p.e. 2 filas y 6 columnas). El > problema está en que si utilizo la función addtable2plot del paquete > plotrix, dependiendo de lo extenso que sea el texto de las filas, puede > haber casos en los cuales aparezca cortada por la derecha la tabla, porque > no hay manera de pasarle un x inicial y un x final al cual la función se > ajuste. > > ¿Se os ocurre alguna idea?. > > Gracias. > > Eva > > [[alternative HTML version deleted]] > > > > > > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > > > -- > Marcelino de la Cruz Rot > Depto. de Biología Vegetal > Universidad Politécnica de Madrid > Madrid, España > > > > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Marcelino de la Cruz
2013-Mar-05 19:59 UTC
[R-es] Sencilla tabla de resultados : cómo construirla?
Otra opción es emplear strwidth # Imagina esta tabla "sa" > sa v1 v2 v3 v4 v5 v6 1 abcde abcdef abcdefg abcdefgh abcdefghi abcdefghij 2 abcde abcdef abcdefg abcdefgh abcdefghi abcdefghij # Calcula la anchura de cada celda. Las unidades por defecto son usr units, con un cex=1 > apply(sa, 2, strwidth) v1 v2 v3 v4 v5 v6 [1,] 0.800959 0.8737735 1.037606 1.183235 1.256049 1.31066 [2,] 0.800959 0.8737735 1.037606 1.183235 1.256049 1.31066 # la anchura que tendrá cada fila de la tabla: > apply(apply(sa, 2, strwidth),1,sum) [1] 6.462283 6.462283 # la anchura que tendría si empleásemos un cex=2 > apply(apply(sa, 2, strwidth, cex=2),1,sum) [1] 12.68792 12.68792 # eso quiere decir que si el fragmento de mi layout tiene una anchura de 10 unidades usr, con un cex = 1 me sobraría espacio (la fila más ancha sería 6.46 unidades) y con un cex = 2 me pasaría (12.69 > 10) Puedo probar diferentes cex, por ejemplo 1.3 me daría una tabla más ajustada. > apply(apply(sa, 2, strwidth, cex=1.3),1,sum) [1] 8.428273 8.428273 El 05/03/2013 20:37, Carlos Ortega escribió:> Hola Eva, > > Haz una prueba, incluye un texto con varias palabras y vas viendo si > se descuadra o no. > Cuando se descuadre, cambias el cex hasta que quede ajustado. > Y repites con otras palabras (más cantidad o menos cantidad y con > diferente tipo de longitud de palabras: cortas y largas)... > Con estos experimentos tendrás una heurística del tipo de cex que > mejor se puede ajustar para cada caso. > > Y con esta heurística construyes tu función... > > Saludos, > Carlos Ortega > www.qualityexcellence.es <http://www.qualityexcellence.es> > > > > El 5 de marzo de 2013 20:14, Eva Prieto Castro <evapcastro@yahoo.es > <mailto:evapcastro@yahoo.es>> escribió: > > > Gracias, Marcelino. ¿Y qué criterio utilizo para ajustar ese cex?. > > Un saludo > > --- El mar, 5/3/13, Marcelino de la Cruz > <marcelino.delacruz@upm.es <mailto:marcelino.delacruz@upm.es>> > escribió: > > De: Marcelino de la Cruz <marcelino.delacruz@upm.es > <mailto:marcelino.delacruz@upm.es>> > Asunto: Re: [R-es] Sencilla tabla de resultados : cómo construirla? > Para: "Eva Prieto Castro" <evapcastro@yahoo.es > <mailto:evapcastro@yahoo.es>> > CC: "Lista R" <r-help-es@r-project.org > <mailto:r-help-es@r-project.org>> > Fecha: martes, 5 de marzo, 2013 19:08 > > > > > > > > Podrías hacerte una función que 1) > evalúe la máxima longitud del texto que aparecerá en las filas y > que 2) modifique el cex de aaddtable2plot ó 3) "abrevie" lo que > finalmente se escribirá. > > > > El 05/03/2013 18:41, Eva Prieto Castro escribió: > > > > Hola, > > Por favor, ¿alguien me puede auxiliar?. Tengo un layout con varias > regiones/zonas en la ventana gráfica. En cada una pongo un plot > (en unos casos el plot es visible y en otros sólo lo utilizo como > comodín para escribir algo en los márgenes). En una de las > regiones tengo que mostrar datos numéricos en una tabla con bordes > (y con líneas que separen las filas y las columnas). Es una tabla > simple (p.e. 2 filas y 6 columnas). El problema está en que si > utilizo la función addtable2plot del paquete plotrix, dependiendo > de lo extenso que sea el texto de las filas, puede haber casos en > los cuales aparezca cortada por la derecha la tabla, porque no hay > manera de pasarle un x inicial y un x final al cual la función se > ajuste. > > ¿Se os ocurre alguna idea?. > > Gracias. > > Eva > > [[alternative HTML version deleted]] > > > > > > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org <mailto:R-help-es@r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > > > -- > Marcelino de la Cruz Rot > Depto. de Biología Vegetal > Universidad Politécnica de Madrid > Madrid, España > > > > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org <mailto:R-help-es@r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es <http://www.qualityexcellence.es>-- Marcelino de la Cruz Rot Depto. de Biología Vegetal Universidad Politécnica de Madrid Madrid, España [[alternative HTML version deleted]]
Eva Prieto Castro
2013-Mar-05 20:31 UTC
[R-es] Sencilla tabla de resultados : cómo construirla?
Gracias, Marcelino y Carlos. Marcelino, veré con calma lo que me explicas antes de apresurarme a preguntar, pero se me ocurre plantear si existe algún mecanismo para que lo prioritario sea el ancho de la tabla (no exceder un máximo, ya que la tabla debe abarcar el eje de abscisas del gráfico que tiene encima, y no más). Seguramente el entendimiento de lo que reportas me llevará a autoresponderme, pero por si acaso lo dejo aquí expuesto. Mañana os comento. Eva --- El mar, 5/3/13, Marcelino de la Cruz <marcelino.delacruz@upm.es> escribió: De: Marcelino de la Cruz <marcelino.delacruz@upm.es> Asunto: Re: [R-es] Sencilla tabla de resultados : cómo construirla? Para: "Carlos Ortega" <cof@qualityexcellence.es> CC: "Eva Prieto Castro" <evapcastro@yahoo.es>, "Lista R" <r-help-es@r-project.org> Fecha: martes, 5 de marzo, 2013 20:59 Otra opción es emplear strwidth # Imagina esta tabla "sa" > sa v1 v2 v3 v4 v5 v6 1 abcde abcdef abcdefg abcdefgh abcdefghi abcdefghij 2 abcde abcdef abcdefg abcdefgh abcdefghi abcdefghij # Calcula la anchura de cada celda. Las unidades por defecto son usr units, con un cex=1 > apply(sa, 2, strwidth) v1 v2 v3 v4 v5 v6 [1,] 0.800959 0.8737735 1.037606 1.183235 1.256049 1.31066 [2,] 0.800959 0.8737735 1.037606 1.183235 1.256049 1.31066 # la anchura que tendrá cada fila de la tabla: > apply(apply(sa, 2, strwidth),1,sum) [1] 6.462283 6.462283 # la anchura que tendría si empleásemos un cex=2 > apply(apply(sa, 2, strwidth, cex=2),1,sum) [1] 12.68792 12.68792 # eso quiere decir que si el fragmento de mi layout tiene una anchura de 10 unidades usr, con un cex = 1 me sobraría espacio (la fila más ancha sería 6.46 unidades) y con un cex = 2 me pasaría (12.69 > 10) Puedo probar diferentes cex, por ejemplo 1.3 me daría una tabla más ajustada. > apply(apply(sa, 2, strwidth, cex=1.3),1,sum) [1] 8.428273 8.428273 El 05/03/2013 20:37, Carlos Ortega escribió: Hola Eva, Haz una prueba, incluye un texto con varias palabras y vas viendo si se descuadra o no. Cuando se descuadre, cambias el cex hasta que quede ajustado. Y repites con otras palabras (más cantidad o menos cantidad y con diferente tipo de longitud de palabras: cortas y largas)... Con estos experimentos tendrás una heurística del tipo de cex que mejor se puede ajustar para cada caso. Y con esta heurística construyes tu función... Saludos, Carlos Ortega www.qualityexcellence.es El 5 de marzo de 2013 20:14, Eva Prieto Castro <evapcastro@yahoo.es> escribió: Gracias, Marcelino. ¿Y qué criterio utilizo para ajustar ese cex?. Un saludo --- El mar, 5/3/13, Marcelino de la Cruz <marcelino.delacruz@upm.es> escribió: De: Marcelino de la Cruz <marcelino.delacruz@upm.es> Asunto: Re: [R-es] Sencilla tabla de resultados : cómo construirla? Para: "Eva Prieto Castro" <evapcastro@yahoo.es> CC: "Lista R" <r-help-es@r-project.org> Fecha: martes, 5 de marzo, 2013 19:08 Podrías hacerte una función que 1) evalúe la máxima longitud del texto que aparecerá en las filas y que 2) modifique el cex de aaddtable2plot ó 3) "abrevie" lo que finalmente se escribirá. El 05/03/2013 18:41, Eva Prieto Castro escribió: Hola, Por favor, ¿alguien me puede auxiliar?. Tengo un layout con varias regiones/zonas en la ventana gráfica. En cada una pongo un plot (en unos casos el plot es visible y en otros sólo lo utilizo como comodín para escribir algo en los márgenes). En una de las regiones tengo que mostrar datos numéricos en una tabla con bordes (y con líneas que separen las filas y las columnas). Es una tabla simple (p.e. 2 filas y 6 columnas). El problema está en que si utilizo la función addtable2plot del paquete plotrix, dependiendo de lo extenso que sea el texto de las filas, puede haber casos en los cuales aparezca cortada por la derecha la tabla, porque no hay manera de pasarle un x inicial y un x final al cual la función se ajuste. ¿Se os ocurre alguna idea?. Gracias. Eva [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es -- Marcelino de la Cruz Rot Depto. de Biología Vegetal Universidad Politécnica de Madrid Madrid, España [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es -- Saludos, Carlos Ortega www.qualityexcellence.es -- Marcelino de la Cruz Rot Depto. de Biología Vegetal Universidad Politécnica de Madrid Madrid, España [[alternative HTML version deleted]]
Eva Prieto Castro
2013-Mar-07 12:53 UTC
[R-es] Sencilla tabla de resultados : cómo construirla?
Hola, Marcelino, voy a utilizar este método que me habías indicado. Como en mi caso hago uso de addtable2plot y utilizo el parámetro xpad (para que la tabla creada con addtable2plot no quede más estrecha que el plot que tiene encima), me surge la necesidad de conocer el "width" de dicha tabla en tiempo de ejecución. ¿Sabéis cómo puedo conocer ese valor?. Gracias. Eva --- El mar, 5/3/13, Marcelino de la Cruz <marcelino.delacruz@upm.es> escribió: De: Marcelino de la Cruz <marcelino.delacruz@upm.es> Asunto: Re: [R-es] Sencilla tabla de resultados : cómo construirla? Para: "Carlos Ortega" <cof@qualityexcellence.es> CC: "Eva Prieto Castro" <evapcastro@yahoo.es>, "Lista R" <r-help-es@r-project.org> Fecha: martes, 5 de marzo, 2013 20:59 Otra opción es emplear strwidth # Imagina esta tabla "sa" > sa v1 v2 v3 v4 v5 v6 1 abcde abcdef abcdefg abcdefgh abcdefghi abcdefghij 2 abcde abcdef abcdefg abcdefgh abcdefghi abcdefghij # Calcula la anchura de cada celda. Las unidades por defecto son usr units, con un cex=1 > apply(sa, 2, strwidth) v1 v2 v3 v4 v5 v6 [1,] 0.800959 0.8737735 1.037606 1.183235 1.256049 1.31066 [2,] 0.800959 0.8737735 1.037606 1.183235 1.256049 1.31066 # la anchura que tendrá cada fila de la tabla: > apply(apply(sa, 2, strwidth),1,sum) [1] 6.462283 6.462283 # la anchura que tendría si empleásemos un cex=2 > apply(apply(sa, 2, strwidth, cex=2),1,sum) [1] 12.68792 12.68792 # eso quiere decir que si el fragmento de mi layout tiene una anchura de 10 unidades usr, con un cex = 1 me sobraría espacio (la fila más ancha sería 6.46 unidades) y con un cex = 2 me pasaría (12.69 > 10) Puedo probar diferentes cex, por ejemplo 1.3 me daría una tabla más ajustada. > apply(apply(sa, 2, strwidth, cex=1.3),1,sum) [1] 8.428273 8.428273 El 05/03/2013 20:37, Carlos Ortega escribió: Hola Eva, Haz una prueba, incluye un texto con varias palabras y vas viendo si se descuadra o no. Cuando se descuadre, cambias el cex hasta que quede ajustado. Y repites con otras palabras (más cantidad o menos cantidad y con diferente tipo de longitud de palabras: cortas y largas)... Con estos experimentos tendrás una heurística del tipo de cex que mejor se puede ajustar para cada caso. Y con esta heurística construyes tu función... Saludos, Carlos Ortega www.qualityexcellence.es El 5 de marzo de 2013 20:14, Eva Prieto Castro <evapcastro@yahoo.es> escribió: Gracias, Marcelino. ¿Y qué criterio utilizo para ajustar ese cex?. Un saludo --- El mar, 5/3/13, Marcelino de la Cruz <marcelino.delacruz@upm.es> escribió: De: Marcelino de la Cruz <marcelino.delacruz@upm.es> Asunto: Re: [R-es] Sencilla tabla de resultados : cómo construirla? Para: "Eva Prieto Castro" <evapcastro@yahoo.es> CC: "Lista R" <r-help-es@r-project.org> Fecha: martes, 5 de marzo, 2013 19:08 Podrías hacerte una función que 1) evalúe la máxima longitud del texto que aparecerá en las filas y que 2) modifique el cex de aaddtable2plot ó 3) "abrevie" lo que finalmente se escribirá. El 05/03/2013 18:41, Eva Prieto Castro escribió: Hola, Por favor, ¿alguien me puede auxiliar?. Tengo un layout con varias regiones/zonas en la ventana gráfica. En cada una pongo un plot (en unos casos el plot es visible y en otros sólo lo utilizo como comodín para escribir algo en los márgenes). En una de las regiones tengo que mostrar datos numéricos en una tabla con bordes (y con líneas que separen las filas y las columnas). Es una tabla simple (p.e. 2 filas y 6 columnas). El problema está en que si utilizo la función addtable2plot del paquete plotrix, dependiendo de lo extenso que sea el texto de las filas, puede haber casos en los cuales aparezca cortada por la derecha la tabla, porque no hay manera de pasarle un x inicial y un x final al cual la función se ajuste. ¿Se os ocurre alguna idea?. Gracias. Eva [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es -- Marcelino de la Cruz Rot Depto. de Biología Vegetal Universidad Politécnica de Madrid Madrid, España [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es -- Saludos, Carlos Ortega www.qualityexcellence.es -- Marcelino de la Cruz Rot Depto. de Biología Vegetal Universidad Politécnica de Madrid Madrid, España [[alternative HTML version deleted]]