
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> 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> escribió:


De: Eva Prieto Castro <evapcastro@yahoo.es>
Asunto: Re: [R-es] Ayuda con dev.copy2pdf - Ejemplo reproducible

Para: "daniel" <daniel319@gmail.com>
CC: 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> 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 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> 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


> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



-- 
Daniel





-- 
Daniel




-- 
Daniel

	[[alternative HTML version deleted]]

