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\ 文件下,直接打開就能看到瞭。

  • mac OS

字體在 /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() 函數添加。

這裡我們使用思源黑體,思源黑體是 Adobe 與 Google 推出的一款開源字體。

下載地址:https://www.jb51.net/fonts/626630.html

你也可以在網盤下載: https://pan.baidu.com/s/14cRhgYvvYotVIFkRVd71fQ 提取碼: e15r。

打開鏈接後,在裡面選一個就好瞭:

可以下載個 OTF 字體,比如 SourceHanSansSC-Bold.otf,將該文件文件放在當前執行的代碼文件中:

柱形圖使用字體庫:

# 載入 showtext
library(showtext);
# 第一個參數設置字體名稱,第二個參數為字體庫路徑,同目錄下,我們寫字體庫名就可以瞭
font_add("SyHei", "SourceHanSansSC-Bold.otf");


# 設置文件名,輸出為 png
png(file = "runoob-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();

3D 餅圖使用中文:

library(plotrix)
library(showtext);
# 第一個參數設置字體名稱,第二個參數為字體庫路徑,同目錄下,我們寫字體庫名就可以瞭
font_add("SyHei", "SourceHanSansSC-Bold.otf");
# 數據準備
info = c(1, 2, 4, 8)

# 命名
names = c("Google", "Runoob", "Taobao", "Weibo")

# 塗色(可選)
cols = c("#ED1C24","#22B14C","#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();

以上就是R語言繪圖如何支持中文的詳細內容,更多關於R語言繪圖支持中文的資料請關註WalkonNet其它相關文章!

推薦閱讀: