Eva,

Revisa los paquetes grid y gridExtra que tienen sus propias versiones de
layout.

Daniel Merino

El 26 de febrero de 2013 13:58, Eva Prieto Castro <evapcastro@yahoo.es>escribió:

>
> Daniel, ¿no hay manera de determinar un height (o equivalente) para los
> plot sin usar layout?. En caso de que lo haya, ¿cómo se establece sobre qué
> plot voy a pintar/escribir?.
>
> Gracias
>
>
> Eva
>
> --- El *mar, 26/2/13, daniel <daniel319@gmail.com>* escribió:
>
>
> De: daniel <daniel319@gmail.com>
> Asunto: Re: [R-es] Ayuda con dev.copy2pdf - Ejemplo reproducible
> Para: "Eva Prieto Castro" <evapcastro@yahoo.es>
> CC: r-help-es@r-project.org
> Fecha: martes, 26 de febrero, 2013 17:37
>
>
> Eva, has definido la función layout, aunque creo recordar que no te servía
> tampoco.
>
> windows(width=8.27, height=11.69)
> layout(matrix(c(1,1,1,2,2,2,3,3,3), 3, 3, byrow = TRUE), heights = c(1,
> 3,1))
> plot(1:2, ylim=c(1,2))
> plot(1:3, ylim=c(1,20))
> text( 2, 10, "ABC")
> mtext("Plot of b vs b",side=1, line=2)
> plot(1:4, ylim=c(1,3))
> mtext("Plot of a vs a",side=3, line=2)
>
>
> Daniel Merino
>
> El 26 de febrero de 2013 13:00, Eva Prieto Castro <evapcastro@yahoo.es<http://mc/compose?to=evapcastro@yahoo.es>
> > escribió:
>
> Hola!
>
> Creo que ya sé cómo puedo hacer: coloco 3 plot (el central es el que va a
> tener los ejes visibles; los otros dos plots los voy a destinar a
> información complementaria; será texto en el caso del plot superior y tabla
> con título en el caso del plot inferior). De ese modo consigo que el
> dev.copy2plot expanda todo.
>
> A continuación pongo un ejemplo básico, pero lo que no sé es cómo
> conseguir ajustar la altura de cada plot, porque ponga el ylim que ponga,
> los hace iguales, como podéis comprobar al ejecutar ésto:
>
> library(plotrix)
>
> graphics.off()
>
> windows(width=8.27, height=11.69)
>
>
> par(mfrow=c(3,1), mar=c(2, 2, 2, 1.5), oma=c(1, 1, 2, 0))
> plot(1:2, ylim=c(1,2))
> plot(1:3, ylim=c(1,20))
> plot(1:4, ylim=c(1,3))
> mtext("Plot of a vs a",side=3,outer=TRUE)
> dev.copy2pdf(file="MeVarios.pdf",height=11.69, width=8.27)
>
> shell.exec(file.path(getwd(), "MeVarios.pdf"))
>
>
> A ver si me podéis iluminar.
>
>
> Gracias.
>
> Eva
> --- El *mar, 26/2/13, Eva Prieto Castro <evapcastro@yahoo.es<http://mc/compose?to=evapcastro@yahoo.es>
> >* escribió:
>
>
> De: Eva Prieto Castro <evapcastro@yahoo.es<http://mc/compose?to=evapcastro@yahoo.es>
> >
>
> Asunto: Re: [R-es] Ayuda con dev.copy2pdf - Ejemplo reproducible
> Para: "daniel" <daniel319@gmail.com<http://mc/compose?to=daniel319@gmail.com>
> >
> CC: r-help-es@r-project.org <http://mc/compose?to=r-help-es@r-project.org>
> Fecha: martes, 26 de febrero, 2013 16:09
>
>
>
> Hola de nuevo,
>
> Volviendo sobre el mismo problema que comentaba esta mañana, me pregunto
> si es posible crear una especie de plot imaginario (sin ejes visualizados
> ni labels ni nada) que ocupe todo la pantalla gráfica, y dentro de él meter
> todo lo que me interese (mi plot, mis text(), mi tabla, etc.). Sería un
> modo de engañar al dev.copy2pdf, que supuestamente expandiría el plot
> imaginario, y entonces por extensión quedaría expandido todo lo que haya
> dibujado en su interior.
>
> A lo mejor es muy descabellado, pero por si acaso prefiero consultaros...
>
> Gracias.
>
> Eva
> --- El *mar, 26/2/13, daniel <daniel319@gmail.com<http://mc/compose?to=daniel319@gmail.com>
> >* escribió:
>
>
> De: daniel <daniel319@gmail.com <http://mc/compose?to=daniel319@gmail.com>
> >
> Asunto: Re: [R-es] Ayuda con dev.copy2pdf - Ejemplo reproducible
> Para: "Eva Prieto Castro" <evapcastro@yahoo.es<http://mc/compose?to=evapcastro@yahoo.es>
> >
> CC: r-help-es@r-project.org <http://mc/compose?to=r-help-es@r-project.org>
> Fecha: martes, 26 de febrero, 2013 15:50
>
> Eva,
>
> Respecto del primer mensaje lo que hice fue calcular el 70% del alto y el
> ancho (arbitrario para que ingresara al área el texto superior), puede ser
> que la proporción correcta sea diferente, cuestión de ajustar hasta que
> conforme. No veo problemas para que esto lo incluyas en una función al fin
> y al cabo esas proporciones deberían mantenerse en la medida que los textos
> que pongas por fuera del área del plot no sean muy diferentes.
>
> Respecto del segundo mensaje, abrí el IntentoEnesimo.pdf en mi Adobe
> Reader 9 Versión 9.2.0.124 en una sesión de Windows XP, lo mandé a la
> impresora e imprimió todo. Para la impresión desde el Adobe Reader elegí
> como escala de página tanto "Ninguno" (supongo deriva al tamaño de la
> página que esta configurada como A4) como "Ajustar a área de Impresión".
> Los resultados como es de esperar son diferentes en cuanto a los márgenes
> pero en ambos casos a mi me imprimió todo.
>
> Daniel Merino
>
>
>
> El 26 de febrero de 2013 09:47, Eva Prieto Castro <evapcastro@yahoo.es>escribió:
>
>
> Daniel, así funciona, al menos el ejemplo básico que os reporté. Pero no
> entiendo el porqué; ¿cómo calculaste eso?.
>
> El método que elija como definitivo tengo que generalizarlo; es decir,
> ponerlo como función. ¿Qué criterio debo utilizar entonces?.
>
> Eva
> --- El *mar, 26/2/13, daniel <daniel319@gmail.com>* escribió:
>
>
> De: daniel <daniel319@gmail.com>
> Asunto: Re: [R-es] Ayuda con dev.copy2pdf - Ejemplo reproducible
> Para: "Eva Prieto Castro" <evapcastro@yahoo.es>
> CC: r-help-es@r-project.org
> Fecha: martes, 26 de febrero, 2013 13:28
>
>
> Eva por que no mantienes las proporciones del área del plot respecto
> del tamaño de la hoja, no se si serán las mejores proporciones en tu
> ejemplo, es cuestión de probar, pero algo así:
>
> dev.copy2pdf(file="IntentoEnesimo.pdf",height=8.18, width=5.79)
>
> Daniel Merino
>
>
> El día 26 de febrero de 2013 07:11, Eva Prieto Castro
> <evapcastro@yahoo.es <http://mc/compose?to=evapcastro@yahoo.es>> escribió:
> >
> > Buenos días:
> >
> > Sigo cabezudeando con el tema de los gráficos; a ver si a alguien se le
> ocurre alguna idea...
> >
> > Supongamos este código:
> >
> > library(plotrix)
> > graphics.off()
> > windows(width=8.27, height=11.69)
> >
> > plot(3:10)
> > #plot(3:10, main="Axis break test")
> > par(xpd=TRUE)
> > text(4, 11,"Axis break test")
> > axis.break()
> > axis.break(2,2.9,style="zigzag")
> > mtext("Texto adicional", side=1, line=2)
> > text(4, 9,"Texto")
> >
> > dev.copy2pdf(file="IntentoEnesimo.pdf",height=11.69, width=8.27)
> > shell.exec(file.path(getwd(), "IntentoEnesimo.pdf"))
> >
> > Como podéis comprobar, el título "Axis break test" aparece en la
> pantalla gráfica, pero no en el pdf. Ésto es así porque lo escribo con
> text(). Si retiro la línea text(4, 11,"Axis break test") y cambio
> plot(3:10) por plot(3:10, main="Axis break test") sí que aparece en el pdf.
> Es lógico: forma parte del plot, y se tiene en cuenta al "expandir" el plot
> para su volcado en pdf. Pero sucede que necesito lograr un correcto
> funcionamiento para este caso (fuera del plot, con text()), porque debo dar
> cobertura a gráficos que llevan "información" (texto, líneas emulando eje
> horizonal superior, etc.) fuera del plot pero anexa a éste. No sé si me
> explico...
> >
> > ¿Se os ocurre alguna forma?. He probado utilizando layout y tampoco lo
> consigo. Es como si el plot adquiriese el protagonismo total y absoluto
> para el dev.copy2pdf.
> >
> > Gracias.
> >
> > Eva
> >
> > P.D.: Debo descartar alternativas tales como el uso del paquete qqplot2
> (no lo podría compatibilizar con funciones que tengo que usar
> necesariamente dentro de la región del plot), y también descarto hacer
> pdf() y dev.off().
> >
> >
> >         [[alternative HTML version deleted]]
> >
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es@r-project.org <http://mc/compose?to=R-help-es@r-project.org>
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >
>
>
>
> --
> Daniel
>
>
>
>
> --
> Daniel
>
>
>
>
> --
> Daniel
>
>


-- 
Daniel

	[[alternative HTML version deleted]]

