Cómo aumentar el tamaño de la fuente en un gráfico en R?


Estoy confundido. ¿Cuál es la manera correcta de aumentar el tamaño de fuente del texto en el título, las etiquetas y otros lugares de una parcela?

Por ejemplo

x <- rnorm(100)
hist(x, xlim=range(x), xlab= "Variable Label", 
     ylab="density", main="Title of plot", prob=TRUE, ps=30)

El argumento ps no cambia el tamaño de la fuente (pero dice en la Ayuda de R para ?par que es para "el tamaño de punto del texto (pero no los símbolos)".

También es posible separar el cambio del tamaño de la fuente de la función de trazado como hist?

 117
Author: buhtz, 2010-11-22

6 answers

Desea algo como el argumento cex=1.5 para escalar las fuentes al 150 por ciento. Pero ver help(par) como también hay cex.lab, cex.axis, ...

 117
Author: Dirk Eddelbuettel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-22 02:41:49

Así, para resumir la discusión existente, añadiendo

cex.lab=1.5, cex.axis=1.5, cex.main=1.5, cex.sub=1.5

A su parcela, donde 1.5 podría ser 2, 3, etc. y un valor de 1 es el valor predeterminado aumentará el tamaño de la fuente.

x <- rnorm(100)

Cex no cambia las cosas

hist(x, xlim=range(x),
     xlab= "Variable Lable", ylab="density", main="Title of plot", prob=TRUE)

hist(x, xlim=range(x),
     xlab= "Variable Lable", ylab="density", main="Title of plot", prob=TRUE, 
     cex=1.5)

introduzca la descripción de la imagen aquí

Añadir cex.lab = 1,5, cex.eje=1.5, cex.principal=1.5, cex.sub=1,5

hist(x, xlim=range(x),
     xlab= "Variable Lable", ylab="density", main="Title of plot", prob=TRUE, 
     cex.lab=1.5, cex.axis=1.5, cex.main=1.5, cex.sub=1.5)

introduzca la descripción de la imagen aquí

 106
Author: Jeromy Anglim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-06 02:28:31

Observe que "cex" cambia las cosas cuando la trama se hace con texto. Por ejemplo, la gráfica de un agrupamiento jerárquico aglomerativo:

library(cluster)
data(votes.repub)
agn1 <- agnes(votes.repub, metric = "manhattan", stand = TRUE)
plot(agn1, which.plots=2)

Producirá un gráfico con texto de tamaño normal:

introduzca la descripción de la imagen aquí

Y plot(agn1, which.plots=2, cex=0.5) producirá este:

introduzca la descripción de la imagen aquí

 21
Author: OskrSaSi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-17 12:43:12

Por ensayo y error, he determinado que se requiere lo siguiente para establecer el tamaño de fuente:

  1. cex no funciona en hist(). Use cex.axis para los números en los ejes, cex.lab para las etiquetas.
  2. cex tampoco funciona en axis(). Use cex.axis para los números en los ejes.
  3. En lugar de establecer etiquetas usando hist(), puede establecerlas usando mtext(). Puede establecer el tamaño de fuente usando cex, pero usando un valor de 1 en realidad establece la fuente a 1.5 veces el valor predeterminado!!! Usted necesita usar cex=2/3 para obtener el tamaño de fuente predeterminado. Por lo menos, este es el caso bajo R 3.0.2 para Mac OS X, usando salida PDF.
  4. Puede cambiar el tamaño de fuente predeterminado para la salida PDF usando pointsize en pdf().

Supongo que sería demasiado lógico esperar que R (a) realmente haga lo que su documentación dice que debe hacer, (b) se comporte de una manera esperada.

 17
Author: Urban Vagabond,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-12-12 09:28:27

En caso de que desee aumentar la fuente de las etiquetas del histograma al establecer labels=TRUE

bp=hist(values, labels = FALSE, 
 main='Histogram',
 xlab='xlab',ylab='ylab',  cex.main=2, cex.lab=2,cex.axis=2)

text(x=bp$mids, y=bp$counts, labels=bp$counts ,cex=2,pos=3)
 1
Author: yeinhorn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-06 16:02:02

Me encontré con esto cuando quería hacer las etiquetas del eje más pequeñas, pero dejar todo lo demás del mismo tamaño. La orden que funcionó para mí, fue poner:

par(cex.axis=0.5)

Antes del comando plot. Solo recuerde poner:

par(cex.axis=1.0)

Después de la gráfica para asegurarse de que las fuentes vuelvan al tamaño predeterminado.

 1
Author: Odysseus Ithaca,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-17 15:40:44