2011-12-15 13 views
6

Estoy escribiendo texto en un data.frame en un dispositivo PDF usando textplot() en gplots (también intenté usar la versión en PerformanceAnalytics). Mi par() opciones son la falta de pago, excepto que cambiar la fuente/márgenes (CM es una familia he definido en mi perfil del sitio)Justificación a la izquierda de una columna mediante texto (gplots o PerformanceAnalytics)

par(family = "CM" , omi = rep(.5 , 4)) 

Estoy intentando conseguir la columna "Plot" que lo dejen justificado. Aquí está mi intento fallido ... cuenta la superposición de texto

textplot(tableOfContents , show.rownames = FALSE , show.colnames = TRUE , hadj = 0) 

enter image description here

obras justificadas a la derecha justo bien:

textplot(tableOfContents , show.rownames = FALSE , show.colnames = TRUE , hadj = 1) 

enter image description here




EDITAR Si alguien más está luchando con la alineación en texplot, que sugieren un vistazo a esta versión modificada que escribí: https://gist.github.com/1487363


Edit2
Es posible que desee quitar mi CeX = 1 dosis. Después de leer un poco más, entiendo que cex en los parámetros de función se deben aplicar a par (cex), que creo que es confuso y sobreingeniería, pero parece ser una práctica estándar R

Respuesta

7

Al observar el código fuente, piense que la mejor manera es con una ligera modificación para que la posición x se adapte a hadj, en lugar de permanecer constante. También valdría la pena sugerir este cambio al desarrollador. Aquí es una esencia donde se puede descargar la versión modificada:

https://gist.github.com/1482973

A continuación, sólo fuente en R con source(), y usted debería ser capaz de utilizar la función como si fuera normal.

source('textplot.R') 
n = 10 
data = data.frame(Section=1:n, Plot=replicate(n, paste(LETTERS[sample(26, sample(20), replace=T)], collapse='')), Page=sort(rep(1:4, len=n)), stringsAsFactors=FALSE) 

textplot(data, show.rownames = FALSE, show.colnames = TRUE, hadj=0) 

enter image description here

+0

enfermo! Muchas gracias por el esfuerzo en este. Empezaré una recompensa cuando el período de espera expire para que pueda obtener más puntos. Además, sugerirá esta actualización para el desarrollador – SFun28

+0

Genial, me alegro de que esté funcionando. Gracias, @ SFun28! –

+0

Por cierto, hice una serie de modificaciones en el texto y produje una versión que creo que es mucho más fácil de usar. Publicado aquí: https://gist.github.com/1487363 Las modificaciones se detallan en la documentación del encabezado. Se actualizará la publicación con este enlace para que otros se beneficien del trabajo – SFun28

Cuestiones relacionadas