Je suis confus. Quelle est la bonne façon d’augmenter la taille de la police du texte dans le titre, les étiquettes et d’autres endroits d’un tracé?
Par exemple
x <- rnorm(100)
hist(x, xlim=range(x), xlab= "Variable Label",
ylab="density", main="Title of plot", prob=TRUE, ps=30)
L'argument ps
ne modifie pas la taille de la police (mais il est indiqué dans l'aide de R pour ?par
qu'il correspond à "la taille en points du texte (mais pas des symboles)".
Est-il également possible de séparer le changement de la taille de la police de la fonction de traçage telle que hist
?
Vous voulez quelque chose comme l'argument cex=1.5
pour mettre les polices à l'échelle à 150%. Mais voyez help(par)
car il y a aussi cex.lab
, cex.axis
, ...
Ainsi, pour résumer la discussion existante, en ajoutant
cex.lab=1.5, cex.axis=1.5, cex.main=1.5, cex.sub=1.5
à votre tracé, où 1,5 pourrait être 2, 3, etc. et une valeur de 1 par défaut augmentera la taille de la police.
x <- rnorm(100)
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)
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)
Notez que "cex" change les choses lorsque le tracé est créé avec du texte. Par exemple, le tracé d’une classification hiérarchique agglomérative:
library(cluster)
data(votes.repub)
agn1 <- agnes(votes.repub, metric = "manhattan", stand = TRUE)
plot(agn1, which.plots=2)
produira un tracé avec du texte de taille normale:
et plot(agn1, which.plots=2, cex=0.5)
produira celui-ci:
Par essais et erreurs, j'ai déterminé ce qui suit pour définir la taille de la police:
cex
ne fonctionne pas dans hist()
. Utilisez cex.axis
pour les nombres sur les axes, cex.lab
pour les étiquettes.cex
ne fonctionne pas non plus dans axis()
. Utilisez cex.axis
pour les nombres sur les axes.hist()
, vous pouvez les définir avec mtext()
. Vous pouvez définir la taille de la police en utilisant cex
, mais en utilisant une valeur de 1 définit la police à 1,5 fois la valeur par défaut !!! Vous devez utiliser cex=2/3
pour obtenir la taille de police par défaut. À tout le moins, c'est le cas sous R 3.0.2 pour Mac OS X, en utilisant la sortie PDF.pointsize
dans pdf()
.Je suppose qu'il serait beaucoup trop logique de s'attendre à ce que R (a) fasse ce que sa documentation indique qu'il devrait faire, (b) se comporte comme prévu.
Je me suis rendu compte de cela quand je voulais réduire les étiquettes d'axe, mais que tout le reste avait la même taille. La commande qui a fonctionné pour moi était de mettre:
par(cex.axis=0.5)
Avant la commande de l'intrigue. Rappelez-vous juste de mettre:
par(cex.axis=1.0)
Après le tracé, assurez-vous que les polices reviennent à la taille par défaut.
Pour être complet, si vous réduisez le texte à 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’emballer des objets comme celui-ci pour réduire le nombre de points chauds, 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)
Les ...
sont appelés ellipses dans R et servent à transmettre des paramètres supplémentaires aux fonctions. Par conséquent, ils sont couramment utilisés pour le traçage. Donc, les travaux suivants fonctionnent comme prévu:
plot_cex(x=1:5, y=rnorm(5), cex=1.5, ylim=c(-0.5,0.5))
Si vous souhaitez augmenter la police des libellés de l'histogramme lors de la définition des libellés = VRAI
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)