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

164voto

Dirk Eddelbuettel Points 134700

Vous voulez quelque chose comme le cex=1.5 argument pour mettre à l'échelle les polices de caractères à 150 %. Mais voyez help(par) car il y a aussi cex.lab , cex.axis , ...

1 votes

Merci ! Quelle est la différence avec "ps=1.5" ?

6 votes

Pourquoi cex=1.5 ne fonctionne pas ? Mais il faut préciser pour chaque pièce en termes de cex.lab, cex.axis, cex.main ? A quoi sert cex=1.5 ?

2 votes

Avez-vous lu help(par) à propos de ps ? Cela ne semble pas lié au texte, d'après ce que je peux voir.

134voto

Jeromy Anglim Points 8325

Ainsi, pour résumer la discussion existante, l'ajout de

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, qui est la valeur par défaut, augmentera la taille de la police.

x <- rnorm(100)

le cex ne change pas les choses

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)

enter image description here

Ajouter cex.lab=1.5, cex.axis=1.5, cex.main=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)

enter image description here

2 votes

Par ailleurs, si vous essayez de modifier l'axe dans un diagramme à barres (par exemple pour le tracé de l'importance des variables dans randomForest ou GBM), vous devez utiliser cex.names (si vous êtes un humain qui lit les choses depuis une position verticale, vous pouvez également vouloir las=2 )

22voto

OskrSaSi Points 131

Notez que " cex "change les choses lorsque le tracé est réalisé avec du texte. Par exemple, le tracé d'un clustering hiérarchique agglomératif :

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 :

enter image description here

y plot(agn1, which.plots=2, cex=0.5) produira celui-ci :

enter image description here

0 votes

Travailler dans faces2 aussi (de Visages de Chernoff )

0 votes

Dans mon exemple, j'ai dû appliquer cex no pour tracer mais l'objet intérieur directement pour un effet : plot(ci(roc(data$a, data$b, auc=TRUE, of="auc", print.auc=TRUE, print.auc.cex=1.5, plot=TRUE), of="thresholds", thresholds="best")))

22voto

Urban Vagabond Points 1936

Par essai et erreur, j'ai déterminé que les éléments suivants sont nécessaires pour définir la taille de la police :

  1. cex ne fonctionne pas dans hist() . Utilisez cex.axis pour les chiffres sur les axes, cex.lab pour les étiquettes.
  2. cex ne fonctionne pas dans axis() soit. Utilisez cex.axis pour les chiffres sur les axes.
  3. Au lieu de définir des étiquettes en utilisant hist() vous pouvez les définir en utilisant mtext() . Vous pouvez définir la taille de la police en utilisant cex mais en utilisant une valeur de 1 définit en fait 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. C'est en tout cas le cas sous R 3.0.2 pour Mac OS X, en utilisant la sortie PDF.
  4. Vous pouvez modifier la taille de la police par défaut pour la sortie PDF à l'aide de la fonction pointsize en pdf() .

Je suppose qu'il serait beaucoup trop logique d'attendre de R qu'il (a) fasse réellement ce que sa documentation indique qu'il doit faire, (b) se comporte de la manière attendue.

6voto

Odysseus Ithaca Points 922

J'ai rencontré ce problème lorsque j'ai voulu réduire la taille des étiquettes des axes, tout en conservant la même taille pour le reste. La commande qui a fonctionné pour moi, était de mettre :

par(cex.axis=0.5)

Avant la commande plot. N'oubliez pas de mettre :

par(cex.axis=1.0)

Après le tracé pour s'assurer que les polices reviennent à la taille par défaut.

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