170 votes

Comment augmenter la taille de la police dans un graphique en R ?

Je suis confus. Quelle est la bonne façon d'augmenter la taille de la police du texte dans le titre, les étiquettes et autres endroits d'un graphique ?

Par exemple

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

El ps ne modifie pas la taille de la police (mais il est dit dans l'aide de R pour ?par qu'il s'agit de "la taille du point du texte (mais pas des symboles)".

Est-il également possible de séparer la modification de la taille de la police de la fonction de traçage, comme par exemple hist ?

0 votes

3voto

yeinhorn Points 83

Dans le cas où vous souhaitez augmenter la police des étiquettes de l'histogramme lorsque vous définissez 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)

2voto

Adam Erickson Points 44

Pour être complet, il faut mettre à l'échelle le texte de 150% avec cex = 1.5 voici une solution complète :

cex <- 1.5
par(cex.lab=cex, cex.axis=cex, cex.main=cex)
plot(...)
par(cex.lab=1, cex.axis=1, cex.main=1)

Je recommande d'envelopper les choses comme ceci pour réduire le boilerplate, par exemple :

plot_cex <- function(x, y, cex=1.5, ...) {
  par(cex.lab=cex, cex.axis=cex, cex.main=cex)
  plot(x, y, ...)
  par(cex.lab=1, cex.axis=1, cex.main=1)
  invisible(0)
}

que vous pouvez ensuite utiliser comme ceci :

plot_cex(x=1:5, y=rnorm(5), cex=1.3)

El ... sont connus sous le nom d'ellipses dans R et sont utilisés pour transmettre des paramètres supplémentaires aux fonctions. Par conséquent, elles sont couramment utilisées pour le traçage. Ainsi, ce qui suit fonctionne comme prévu :

plot_cex(x=1:5, y=rnorm(5), cex=1.5, ylim=c(-0.5,0.5))

0voto

Paul4forest Points 75

Vous pouvez également modifier la résolution de l'image enregistrée avec le paramètre res du périphérique graphique :

png(file = "myplot1.png",  bg = "transparent", res = 100)   
plot(1:10)                                                  
dev.off()                                                   

plot 1

png(file = "myplot2.png", bg = "transparent", res = 200)    
plot(1:10)                                                  
dev.off()                                                   

plot2

Cela permet de conserver la même taille d'image en pixels, mais modifie le rapport d'aspect du tracé, y compris la taille de la police.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X