日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

ttc转换ttf字体在线_R 语言画图中英文字体解决方案

發(fā)布時間:2023/11/27 生活经验 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ttc转换ttf字体在线_R 语言画图中英文字体解决方案 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在某些時候,需要在 R 畫圖中添加中文,但是默認情況下,R 對中文的支持不好。這里推薦一個showtext的 R 包。如果需要將含有中文字體的圖形保存為 pdf 文件,可以使用下面講到的方案,最新版的showtext已經(jīng)支持了ggplot2,推薦使用此種方案。

這樣,在你寫的 R 代碼中,開頭添加:
library(showtext)
showtext_auto(enable=True)????#?表示之后用上同樣的字體
font_add("kaishu",?"simkai.ttf")?#?如果系統(tǒng)已經(jīng)安裝了該字體,可以通過這種方式調(diào)用
font_add('SimSun',?regular?=?'/Library/Fonts/Microsoft/SimSun.ttf')?# 添加字體,?必須給定指定的字體的位置
  • 如果你使用的是 Mac,可以打開 font book,查找你想要字體的位置。如 SimSun 字對應于?/Library/Fonts/Microsoft/SimSun.ttf?文件。

  • 如果你使用的是 Linux,字體應該位于?/usr/share/fonts??目錄下。

示例

來一個示例,示例后面有各個函數(shù)的解釋。
  • 檢查系統(tǒng)是否已經(jīng)安裝目標字體

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 函數(shù)

runif()是 R 語言生成均勻分布隨機數(shù)的函數(shù),句法是:runif(n, min=0, max=1),其中 n 表示生成的隨機數(shù)數(shù)量,min 表示均勻分布的下限,max 表示均勻分布的上限;若省略參數(shù) min、max,則默認生成 [0,1] 上的均勻分布隨機數(shù)。例子如下:
>?runif(5,?0,?1)?????#?生成5個[0,1]的均勻分布的隨機數(shù)
[1]?0.5993?0.7391?0.2617?0.5077?0.7199?

>?runif(5)???????????#?默認生成5個[0,1]上的均勻分布隨機數(shù)
[1]?0.2784?0.7755?0.4107?0.8392?0.7455

round是 R 語言里的 “四舍五入” 的函數(shù),具體的規(guī)則采用 banker's rounding,即四舍六入五留雙規(guī)則(wiki)。round的原型是round(x, digits = 0),digits 用于設定小數(shù)點位置,默認為零即小數(shù)點后零位(取整)。例子如下:

>?c?1.4,?1.6,?1.5,?2.5,?2.51)
>?round(c)
[1]?1?2?2?2?3

intToUtf8是一個將整數(shù)向量轉(zhuǎn)換為或轉(zhuǎn)換為 Utf-8 編碼字符向量的函數(shù),與之對應的函數(shù)是utf8ToInt—— 一個能把 Utf-8 編碼字符轉(zhuǎn)換為整數(shù)向量的函數(shù)。示例如下:

>?utf8ToInt("沈維燕")
[1]?27784?32500?29141
>?intToUtf8(c(27784,?32500,29141))
[1]?"沈維燕"
>?intToUtf8(c(27784,?32500,29141),?multiple=TRUE)????#?multiple:?轉(zhuǎn)換為單個字符串還是多個單獨的字符
[1]?"沈"?"維"?"燕"

總結(jié)

以上是生活随笔為你收集整理的ttc转换ttf字体在线_R 语言画图中英文字体解决方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。