Dans mon étude, je génère différents graphiques en utilisant R. Je vois que la plupart des graphiques proposent une police de type Sans Serif de différentes tailles.
Comment changer tout le texte d'un graphique (étiquette X, étiquette Y, titre, légende, etc.) en une police uniforme, par exemple Times New Roman, 12pt, Bold?
Vous pouvez utiliser le paquet extrafont .
install.packages("extrafont")
library(extrafont)
font_import()
loadfonts(device="win") #Register fonts for Windows bitmap output
fonts() #vector of font family names
## [1] "Andale Mono" "AppleMyungjo"
## [3] "Arial Black" "Arial"
## [5] "Arial Narrow" "Arial Rounded MT Bold"
library(ggplot2)
data(mtcars)
ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
ggtitle("Fuel Efficiency of 32 Cars") +
xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") +
theme_bw() +
theme(text=element_text(family="Times New Roman", face="bold", size=12)) #Times New Roman, 12pt, Bold
#example taken from the Github project page
Remarque: À l'aide du package extrafont
, vous pouvez également incorporer ces polices dans PDF et fichiers EPS (faire des tracés en R et exporter au format PDF/EPS). Vous pouvez également créer directement des symboles mathématiques (voir l'équation mathématique dans le tracé ci-dessous), généralement créés à l'aide de TeX. Plus d'informations ici et ici . Regardez également le page du projet github .
Regardez aussi cette réponse qui décrit la création xkcd graphes de style utilisant le package extrafont
.
Vous pouvez changer la police dans Windows en Times New Roman en utilisant la commande windowsFonts()
et l'option family
dans plot
:
x = seq(1,10,1)
y = 1.5*x
windowsFonts(A = windowsFont("Times New Roman"))
plot(x, y,
family="A",
main = "title",
font=2)
Le texte en gras provient de font=2
. Quant à la taille, voir ?cex()
. Voir aussi ici: http://www.statmethods.net/advgraphs/parameters.html
Voici une solution ggplot
utilisant WindowsFonts(...)
windowsFonts(Times=windowsFont("Times New Roman"))
library(ggplot2)
ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
ggtitle("Fuel Efficiency of 32 Cars") +
xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") +
theme_bw() +
theme(text=element_text(family="Times", face="bold", size=12)) #Times New Roman, 12pt, Bold
Comme vous pouvez le voir, le texte est vraiment Times New Roman.
L'idée principale est que, quel que soit le nom que vous donnez à la police en interne dans R, en utilisant
windowsFonts(name=windowsFont("system name"))
vous devez utiliser pour référencer la police
theme(text=element_text(family="name",...),...)