English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Support des caractères chinois dans les graphiques R

font library directory of different systems:

  • Linux usually in /usr/share/fonts down,we can use fc-list command view:

    # fc-list
    /usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf: DejaVu Serif:style=Bold
    /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf: DejaVu Sans Mono:style=Book
    /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: DejaVu Sans:style=Book
    /usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf: DejaVu Sans:style=Bold
    /usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf: DejaVu Sans Mono:style=Bold
    /usr/share/fonts/truetype/dejavu/DejaVuSerif.ttf: DejaVu Serif:style=Book
  • Les polices Windows se trouvent dans C:\Windows\Fonts\ le fichier, ouvert directement pour voir.

  • Les polices macOS se trouvent dans /Système/Bibliothèque/Polices et /Bibliothèque/Polices dans le répertoire.

La bibliothèque de polices prises en charge par le système peut être consultée en installant showtext :

> install.packages("showtext", repos = "https://mirrors.ustc.edu.cn/CRAN/) # Installer showtext
...
> font_files() # Voir les polices
            path file family face version
1 /Bibliothèque/Fonts Arial Unicode.ttf Arial Unicode MS Regular Version 1.01x
         ps_name
1 ArialUnicodeMS

Nous voyons ArialUnicodeMS, nous pouvons donc l'utiliser :

pie3D(info,labels = names,explode = 0.1, main = "3D  "Image", family = "ArialUnicodeMS")

Charger la police personnalisée

Parfois, la bibliothèque de polices du système n'est pas bien supportée, La fonction showtext() peut charger notre police personnalisée, vous pouvez télécharger le paquet de police ttf puis l'ajouter en utilisant la fonction font_add().

Ici, nous utilisons le Source Han Sans, une police ouverte lancée par Adobe et Google.

Site officiel :https://source.typekit.com/source-han-serif/cn/

Adresse GitHub :https://github.com/adobe-fonts/source-han-sans/tree/release/OTF/SimplifiedChinese

Après avoir ouvert le lien, choisissez-en un dedans :

Vous pouvez télécharger une police OTF, par exemple SourceHanSansSC-Bold.otf, mettez ce fichier dans le fichier de code en cours d'exécution :

Le graphique en colonnes utilise la bibliothèque de polices :

# Charger showtext
library(showtext);
# Premier paramètre pour définir le nom de la police, second paramètre pour le chemin d'accès à la bibliothèque de polices, dans le même répertoire, nous pouvons écrire le nom de la bibliothèque de polices
font_add("SyHei", "SourceHanSansSC-Bold.otf"); 
# Définir le nom de fichier, sorti en png
png(file = "w3codebox-bar-cn.png")
cvd19 = c(83534,2640626,585493)
# Charger les polices
showtext_begin();
barplot(cvd19,
    main="Graphique en barres de la pandémie de COVID-19",
    col=c("#ED1C24",#22B14C","#FFC90E"),
    names.arg=c("Chine", "États-Unis", "Inde"),
    family='SyHei' # Définir la bibliothèque de polices
)
# Supprimer les polices
showtext_end();

3D Utilisation du graphique en cercle avec des caractères chinois :

library(plotrix)
library(showtext);
# Premier paramètre pour définir le nom de la police, second paramètre pour le chemin d'accès à la bibliothèque de polices, dans le même répertoire, nous pouvons écrire le nom de la bibliothèque de polices
font_add("SyHei", "SourceHanSansSC-Bold.otf");
# Préparation des données
info = c(1, 2, 4, 8)
# Nommer
names = c("Google", "w3codebox", "Taobao", "Weibo")
# Couleur (optionnel)
cols = c("#ED1C24",#22B14C","#FFC90E","#3f48CC"
# Définir le nom de fichier, sorti en png
png(file = "3d_pie_chart.png")
# Charger les polices
showtext_begin();
# Dessiner 3D 图
pie3D(info,labels = names,explode = 0.1, main = "3D图",family = "SyHei")
# Supprimer les polices
showtext_end();
# Fermer l'appareil graphique
dev.off();