ttc转换ttf字体在线_R 语言画图中英文字体解决方案
生活随笔
收集整理的這篇文章主要介紹了
ttc转换ttf字体在线_R 语言画图中英文字体解决方案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在某些時候,需要在 R 畫圖中添加中文,但是默認情況下,R 對中文的支持不好。這里推薦一個showtext的 R 包。如果需要將含有中文字體的圖形保存為 pdf 文件,可以使用下面講到的方案,最新版的showtext已經支持了ggplot2,推薦使用此種方案。
library(showtext)
showtext_auto(enable=True)????#?表示之后用上同樣的字體
font_add("kaishu",?"simkai.ttf")?#?如果系統已經安裝了該字體,可以通過這種方式調用
font_add('SimSun',?regular?=?'/Library/Fonts/Microsoft/SimSun.ttf')?# 添加字體,?必須給定指定的字體的位置
如果你使用的是 Mac,可以打開 font book,查找你想要字體的位置。如 SimSun 字對應于?/Library/Fonts/Microsoft/SimSun.ttf?文件。
如果你使用的是 Linux,字體應該位于?/usr/share/fonts??目錄下。
示例
來一個示例,示例后面有各個函數的解釋。檢查系統是否已經安裝目標字體
shenweiyan@ecs-steven?22:23:35?/home/shenweiyan
$?fc-list?|grep?SimSun
/usr/share/fonts/chinese/simsun.ttc:?NSimSun,新宋體:style=Regular
/usr/share/fonts/chinese/simsun.ttc:?SimSun,宋體:style=Regular使用??showtext 包在繪圖鐘顯示中英文
library(showtext)
showtext_auto(enable=True)
font_add('SimSun',?"simsun.ttc")
set.seed(123)
##?For?now?we?are?using?a?device?functions?to?draw?axis?labels
plot(1,?xlim?=?c(-3,?3),?ylim?=?c(-3,?3),?type?=?"n")
##?Then?turn?showtext?on?and?draw?some?characters
showtext_begin()
text(runif(100,?-3,?3),?runif(100,?-3,?3),?
?????intToUtf8(round(runif(100,?20200,?30000)),?multiple=TRUE),?
?????col=rgb(runif(100),?runif(100),?runif(100),?0.5?+?runif(100)/2),?
?????cex=2,?family="SimSun")
title("隨機漢字",?family="SimSun")
showtext_end()查看當前 R?的會話信息
>?sessionInfo()
R?version?3.6.2?(2019-12-12)
Platform:?x86_64-conda_cos6-linux-gnu?(64-bit)
Running?under:?CentOS?Linux?7?(Core)
Matrix?products:?default
BLAS/LAPACK:?/usr/local/software/miniconda3/lib/libopenblasp-r0.3.7.so
locale:
?[1]?LC_CTYPE=en_US.UTF-8???????LC_NUMERIC=C
?[3]?LC_TIME=en_US.UTF-8????????LC_COLLATE=en_US.UTF-8
?[5]?LC_MONETARY=en_US.UTF-8????LC_MESSAGES=en_US.UTF-8
?[7]?LC_PAPER=en_US.UTF-8???????LC_NAME=C
?[9]?LC_ADDRESS=C???????????????LC_TELEPHONE=C
[11]?LC_MEASUREMENT=en_US.UTF-8?LC_IDENTIFICATION=C
attached?base?packages:
[1]?stats?????graphics??grDevices?utils?????datasets??methods???base
other?attached?packages:
[1]?showtext_0.7???showtextdb_2.0?sysfonts_0.8
loaded?via?a?namespace?(and?not?attached):
[1]?compiler_3.6.2學習幾個 R 函數
runif()是 R 語言生成均勻分布隨機數的函數,句法是:runif(n, min=0, max=1),其中 n 表示生成的隨機數數量,min 表示均勻分布的下限,max 表示均勻分布的上限;若省略參數 min、max,則默認生成 [0,1] 上的均勻分布隨機數。例子如下:>?runif(5,?0,?1)?????#?生成5個[0,1]的均勻分布的隨機數
[1]?0.5993?0.7391?0.2617?0.5077?0.7199?
>?runif(5)???????????#?默認生成5個[0,1]上的均勻分布隨機數
[1]?0.2784?0.7755?0.4107?0.8392?0.7455
round是 R 語言里的 “四舍五入” 的函數,具體的規則采用 banker's rounding,即四舍六入五留雙規則(wiki)。round的原型是round(x, digits = 0),digits 用于設定小數點位置,默認為零即小數點后零位(取整)。例子如下:
>?c?1.4,?1.6,?1.5,?2.5,?2.51)
>?round(c)
[1]?1?2?2?2?3
intToUtf8是一個將整數向量轉換為或轉換為 Utf-8 編碼字符向量的函數,與之對應的函數是utf8ToInt—— 一個能把 Utf-8 編碼字符轉換為整數向量的函數。示例如下:
>?utf8ToInt("沈維燕")
[1]?27784?32500?29141
>?intToUtf8(c(27784,?32500,29141))
[1]?"沈維燕"
>?intToUtf8(c(27784,?32500,29141),?multiple=TRUE)????#?multiple:?轉換為單個字符串還是多個單獨的字符
[1]?"沈"?"維"?"燕"
總結
以上是生活随笔為你收集整理的ttc转换ttf字体在线_R 语言画图中英文字体解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python数据框 命名_Python-
- 下一篇: 大学计算机思维导图_我学计算机,也会修电