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

Поддержка китайских иероглифов в визуализации языка R

Гистограмма, также известная как столбчатая диаграмма, это статистический график, в котором длина прямоугольника является переменной.

Гистограмма может быть горизонтальной или вертикальной, каждый прямоугольник может иметь разный цвет.

Язык программирования R использует функцию barplot() для создания гистограмм, формат которой следующий:

barplot(H, xlab, ylab, main, names.arg, col, beside)

Объяснение параметров:

  • H Вектор или матрица, содержащая числовые значения для графика, каждый из которых представляет высоту прямоугольника.

  • xlab Ярлык оси X.

  • ylab Ярлык оси Y.

  • main Заголовок диаграммы.

  • names.arg Имя каждого прямоугольника.

  • col Цвет каждого прямоугольника.

Далее мы создадим простую гистограмму:

# Подготовка вектора
cvd19 = c(83534,2640626,585493)
# Отображение гистограммы
barplot(cvd19)

Исполнив программу рисования, будет создан файл PDF (Rplots.pdf) в текущей директории, открыв файл, можно увидеть результат графического представления, как показано ниже:

Чтобы лучше передать информацию, мы можем добавить заголовок, цвет и имя каждого прямоугольника на диаграмме.

Далее мы создадим статистическую диаграмму с количеством подтвержденных случаев коронавируса в Китае, США и Индии 1 июля 2020 года.

Для китайских шрифтов необходимо установить параметр шрифта family='GB1':

cvd19 = c(83534,2640626,585493)
barplot(cvd19,
    main="新冠疫情条形图",
    col=c("#ED1C24","#22B14C","#FFC90E"),
    names.arg=c("Китай","США","Индия"),
    family='GB1'
2, 3

Данные в barplot могут быть как вектором, так и матрицей, сейчас мы создадим сравнительную гистограмму для新冠疫情 июня и июля.

Сначала готовим данные:

 КитайСШАИндия
Июнь830171794546190535
Июль835342640626585493

Преобразуйте в матрицу, создайте гистограмму, отображайте в виде рядом и показывайте цветовые образцы.

Здесь мы установили свой библиотеку шрифтов, подробности см. R рисование - поддержка китайского языка

Пример
library(showtext);
font_add("SyHei", "SourceHanSansSC-Bold.otf");
  cvd19 = matrix(
  c(83017, 83534, 1794546, 2640626, 190535, 585493),
2, 3
)
png(file = "w3codebox-bar-1.png")
# png(file = "w3codebox-bar-3.png")
# Загрузить шрифт
showtext_begin();
colnames(cvd19) = c("Китай", "США", "Индия")
barplot(cvd19, main = "新冠疫情条形图", beside=TRUE, legend=TRUE, family='SyHei')
# barplot(cvd19, main = "Гистограмма по новому коронавирусу", beside = FALSE, legend = TRUE, col = c("blue","green"), family='SyHei')
# Удалить шрифт

Следующий код создаст файл w3codebox-bar-1.png в текущей директории, как показано ниже:


Мы устанавливаем 색상 샘플 для каждого цвета в每组:

library(plotrix)
Пример
library(showtext);
font_add("SyHei", "SourceHanSansSC-Bold.otf");
  cvd19 = matrix(
  c(83017, 83534, 1794546, 2640626, 190535, 585493),
2, 3
)
png(file = "w3codebox-bar-2.png")
# png(file = "w3codebox-bar-3.png")
# Загрузить шрифт
showtext_begin();
colnames(cvd19) = c("Китай", "США", "Индия")
barplot(cvd19, main = "新冠疫情条形图", beside=TRUE, legend=TRUE, col=c("blue","green"), family='SyHei')
# barplot(cvd19, main = "Гистограмма по новому коронавирусу", beside = FALSE, legend = TRUE, col = c("blue","green"), family='SyHei')
# Удалить шрифт

以下代码会在当前程序目录下生存一个 w3codebox-bar-2.png 文件,如下所示:

beside 参数

Следующий код создаст файл w3codebox-bar-2.png в текущей директории, как показано ниже:

  • Параметр beside beside устанавливает способ堆积 прямоугольных столбиков, по умолчанию FALSE:

  • Если beside = FALSE Если beside = TRUE

Пример
library(showtext);
font_add("SyHei", "SourceHanSansSC-Bold.otf");
  cvd19 = matrix(
  c(83017, 83534, 1794546, 2640626, 190535, 585493),
2, 3
)
# Установить имя файла, вывод в формате png
# png(file = "w3codebox-bar-3.png")
# Загрузить шрифт
showtext_begin();
colnames(cvd19) = c("Китай", "США", "Индия")
rownames(cvd19) = c("Июнь", "Июль")
# barplot(cvd19, main = "Гистограмма по новому коронавирусу", beside = FALSE, legend = TRUE, col = c("blue","green"), family='SyHei')
# Удалить шрифт

showtext_end();