R Gráficos - Soporte de chino

Directorios de bibliotecas de fuentes en diferentes sistemas:

  • Linux generalmente en/usr/share/fontsdirectorio, podemos usarfc-listcomando para ver:

    # 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
  • Las fuentes de Windows están enC:\Windows\Fonts\carpeta, ábrela y podrás verlas.

  • Las fuentes de macOS están en/System/Library/Fontsy/Library/Fontsdirectorio.

Las bibliotecas de fuentes admitidas por el sistema se pueden ver instalando showtext:

> install.packages("showtext", repos = "https://mirrors.ustc.edu.cn/CRAN/")  # 安装 showtext
...
> font_files()   # 查看字体
            path              file           family    face       version
1 /Library/Fonts Arial Unicode.ttf Arial Unicode MS Regular Version 1.01x
         ps_name
1 ArialUnicodeMS

Si ves ArialUnicodeMS, ya podemos usarlo:

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

Cargar fuentes personalizadas

Las bibliotecas de fuentes del sistema a veces no tienen un buen soporte, la función showtext() puede cargar nuestras fuentes personalizadas, podemos descargar el paquete de fuentes ttf y luego usar la función font_add() para agregarlo.

Aquí usamos Source Han Sans (Noto Sans CJK). Source Han Sans es una fuente de código abierto lanzada por Adobe y Google.

Sitio web oficial:https://source.typekit.com/source-han-serif/cn/

Dirección de GitHub:https://github.com/adobe-fonts/source-han-sans/tree/release/OTF/SimplifiedChinese

Después de abrir el enlace, elige uno dentro:

También puedes descargarlo desde el disco en la nube:https://pan.baidu.com/s/14cRhgYvvYotVIFkRVd71fQ 。

Puedes descargar una fuente OTF, por ejemplo SourceHanSansSC-Bold.otf, y colocar ese archivo en el directorio del código actual en ejecución:

Usar biblioteca de fuentes en gráfico de barras:

Ejemplo

# Cargar showtext
library(showtext);
# El primer parámetro establece el nombre de la fuente, el segundo parámetro es la ruta de la biblioteca de fuentes; si está en el mismo directorio, solo escribimos el nombre de la biblioteca de fuentes.
font_add("SyHei", "SourceHanSansSC-Bold.otf");


# Establecer el nombre del archivo, salida como png
png(file = "ejemplo-bar-cn.png")

cvd19 = c(83534,2640626,585493)
# Cargar fuente
showtext_begin();
barplot(cvd19,
    main="Gráfico de barras de la pandemia de COVID-19",
    col=c("#ED1C24","#226AB1","#FFC90E"),
    names.arg=c("China","Estados Unidos","India"),
    family='SyHei'     # Configurar la biblioteca de fuentes
)
# Eliminar la fuente
showtext_end();

Gráfico de pastel 3D usando chino:

Ejemplo

library(plotrix)
library(showtext);
# El primer parámetro establece el nombre de la fuente, el segundo parámetro es la ruta de la biblioteca de fuentes; si está en el mismo directorio, solo escribimos el nombre de la biblioteca de fuentes.
font_add("SyHei", "SourceHanSansSC-Bold.otf");
# Preparación de datos
info = c(1, 2, 4, 8)

# Nombres
names = c("Google", "Ejemplo", "Taobao", "Weibo")

# Colorear (opcional)
cols = c("#ED1C24","#226AB1","#FFC90E","#3f48CC")

# Establecer el nombre del archivo, salida como png
png(file = "3d_pie_chart.png")

# Cargar fuente
showtext_begin();

# Dibujar gráfico 3D
pie3D(info,labels = names,explode = 0.1, main = "Voy a probar la fuente SyHei",family = "SyHei")

# Eliminar la fuente
showtext_end();
# Cerrar el dispositivo gráfico
dev.off();

Otras extensiones