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

دعم النصوص الصينية في رسم الخرائط البيانية في 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 Chart", family = "ArialUnicodeMS")

تحميل الخط المخصص

أحياناً لا يتم دعم مكتبة الخطوط للنظام بشكل جيد وظيفة showtext() يمكنها تحميل الخطوط المخصصة الخاصة بنا، يمكنك تنزيل حزمة الخط ttf ثم إضافة باستخدام وظيفة font_add().

في هذا المكان نستخدم الخط 'SimYouHei'، 'SimYouHei' هو خط مفتوح المصدر تم إطلاقه من قبل Adobe و Google.

الموقع الرسمي:https://source.typekit.com/source-han-serif/cn/

عنوان GitHub:https://github.com/adobe-fonts/source-han-sans/tree/release/OTF/SimplifiedChinese

بعد فتح الرابط، اختر أحدها داخلها:

يمكنك تنزيل الخط OTF، مثل SourceHanSansSC-Bold.otf، وضع ملف في نفس مجلد ملف الكود الم�行ج الحالي:

الرسوم البيانية الشمطية تستخدم مكتبة الخطوط:

# تحميل showtext
library(showtext);
# إعداد الأولى هو اسم الخط، والثاني هو مسار مكتبة الخط، في نفس الدليل، نكتب اسم مكتبة الخط فقط
font_add("SyHei", "SourceHanSansSC-Bold.otf"); 
# إعداد اسم الملف، الخروج كـ png
png(file = "w3codebox-bar-cn.png")
cvd19 = c(83534, 2640626, 585493)
# تحميل الخط
showtext_begin();
barplot(cvd19,
    main="الرسومات البيانية الشريطية للوباء الجديد",
    col=c("#ED1C24","#22B14C","#FFC90E"),
    names.arg=c("الصين","الولايات المتحدة","الهند"),
    family='SyHei' # إعداد مكتبة الخط
)
# إزالة الخط
showtext_end();

استخدام الرسومات البيانية الكعكية الثلاثية الأبعاد باللغة الصينية:

library(plotrix);
library(showtext);
# إعداد الأولى هو اسم الخط، والثاني هو مسار مكتبة الخط، في نفس الدليل، نكتب اسم مكتبة الخط فقط
font_add("SyHei", "SourceHanSansSC-Bold.otf");
# إعداد البيانات
info = c(1, 2, 4, 8)
# الاسم
names = c("Google", "w3codebox", "Taobao", "Weibo")
# اللون (اختياري)
cols = c("#ED1C24","#22B14C","#FFC90E","#3f48CC")
# إعداد اسم الملف، الخروج كـ png
png(file = "3d_pie_chart.png")
# تحميل الخط
showtext_begin();
# رسم الرسومات الثلاثية الأبعاد
pie3D(info, labels = names, explode = 0.1, main = "الرسومات الثلاثية الأبعاد", family = "SyHei")
# إزالة الخط
showtext_end();
# إغلاق جهاز الرسم
dev.off();