Графика в R - Поддержка китайского языка

Каталоги библиотек шрифтов для разных систем:

  • Linux обычно находится в/usr/share/fonts, можно использовать командуfc-listдля просмотра:

    # 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
  • Шрифты Windows находятся в папкеC:\Windows\Fonts\, их можно увидеть, открыв её напрямую.

  • Шрифты macOS находятся в/System/Library/Fontsи/Library/Fontsв этих каталогах.

Поддерживаемые системой библиотеки шрифтов можно просмотреть, установив 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

Как только вы увидите ArialUnicodeMS, мы можем использовать его:

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

Загрузить пользовательские шрифты

Системная библиотека шрифтов иногда поддерживается недостаточно хорошо. Функция showtext() может загружать наши пользовательские шрифты. Вы можете скачать пакет шрифтов ttf, а затем использовать функцию font_add(), чтобы добавить его.

Здесь мы используем Source Han Sans. Source Han Sans — это шрифт с открытым исходным кодом, выпущенный Adobe и Google.

Официальный сайт:https://source.typekit.com/source-han-serif/cn/

Адрес GitHub:https://github.com/adobe-fonts/source-han-sans/tree/release/OTF/SimplifiedChinese

После открытия ссылки просто выберите один из них:

Вы также можете скачать с облачного диска:https://pan.baidu.com/s/14cRhgYvvYotVIFkRVd71fQ 。

Вы можете скачать шрифт OTF, например SourceHanSansSC-Bold.otf, и поместить этот файл в тот же каталог, где находится текущий исполняемый файл кода:

Столбчатая диаграмма с использованием библиотеки шрифтов:

Пример

# Загрузить showtext
library(showtext);
# Первый параметр задаёт имя шрифта, второй параметр — путь к библиотеке шрифтов. В том же каталоге мы просто пишем имя библиотеки шрифтов.
font_add("SyHei", "SourceHanSansSC-Bold.otf");


# Задать имя файла, вывод в png
png(file = "example-bar-cn.png")

cvd19 = c(83534,2640626,585493)
# Загрузить шрифт
showtext_begin();
barplot(cvd19,
    main="Столбчатая диаграмма пандемии COVID-19",
    col=c("#ED1C24","#226AB1","#FFC90E"),
    names.arg=c("Китай","США","Индия"),
    family='SyHei'     # Установить библиотеку шрифтов
)
# Удалить шрифт
showtext_end();

Использование китайского в 3D-круговой диаграмме:

Пример

library(plotrix)
library(showtext);
# Первый параметр задаёт имя шрифта, второй параметр — путь к библиотеке шрифтов. В том же каталоге мы просто пишем имя библиотеки шрифтов.
font_add("SyHei", "SourceHanSansSC-Bold.otf");
# Подготовка данных
информация = c(1, 2, 4, 8)

# Именование
names = c("Google", "Example", "Taobao", "Weibo")

# Раскраска (необязательно)
cols = c("#ED1C24","#226AB1","#FFC90E","#3f48CC")

# Задать имя файла, вывод в png
png(file = "3d_pie_chart.png")

# Загрузить шрифт
showtext_begin();

# Нарисовать 3D-диаграмму
pie3D(info,labels = names,explode = 0.1, main = "Я тестирую шрифт SyHei",family = "SyHei")

# Удалить шрифт
showtext_end();
# Закрыть графическое устройство
dev.off();

Другие расширения