:R 語言畫圖中文字體解決方案-字體教程免费ppt模版下载-道格办公

R 語言畫圖中文字體解決方案

編者薦語:

昨天美格基因向大家分享了WGCNA的實用乾貨,今天趁熱打鐵,給大家分享R語言畫圖中文字體解決方案!

以下文章來源於生信科技愛好者,作者沈維燕

生信科技愛好者

Bio+IT愛好者社區,生物信息學與互聯網科學技術分享專欄!

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

這樣,在你寫的R代碼中,開頭添加:
library(showtext)showtext_auto(enable=True) # 表示之後用上同樣的字體font_add("kaishu""simkai.ttf"# 如果系統已經安裝了該字體,可以通過這種方式調用font_add('SimSun', regular = '/Library/Fonts/Microsoft/SimSun.ttf'#添加字體, 必須給定指定的字體的位置
  • 如果你使用的是Mac,可以打開fontbook,查找你想要字體的位置。如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 labelsplot(1, xlim = c(-33), ylim = c(-33), type = "n")## Then turn showtext on and  draw some charactersshowtext_begin()text(runif(100-33), runif(100-33),      intToUtf8(round(runif(10020200< /span>, 30000)), multiple=TRUE),      col=rgb(runif(100), runif(100), runif(100), 0.5 + runif(100)/2< /span>),      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: defaultBLAS/LAPACK: /usr/local/software/miniconda3/lib/libopenblasp-r0.3.7 .solocale: [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=Cattached base packages:[1] stats     graphics  grDevices utils datasets  methods   baseother attached packages:[1] showtext_0.7   showtextdb_2.0 sysfonts_0.8 loaded via a namespace (and not attached):[1] compiler_3.6.2
< /section>

學習幾個R函數

runif()< /code>是R語言生成均勻分佈隨機數的函數,句法是:runif(n,min=0,max=1),其中>
> ; runif(501)     # 生成5個[0,1]的均勻分佈的隨機數[10.5993 0.7391 0.2617 0.5077 0.7199 > runif(5)           # 默認生成5個[0,1]上的均勻分佈隨機數[10.2784 0.7755 0.4107 0.8392 0.7455
< /section>

round是R語言裡的“四捨五入”的函數,具體的規則採用banker'srounding,即四捨六入五留雙規則(wiki)。 round的原型是round(x,digits=0),digits>

> c <- c(1.41.61.52.5, 2.51)> round(c)[11 2 2 < span>2 3

intToUtf8是一個將整數向量轉換為或轉換為Utf-8編碼字符向量的函數,與之對應的函數是utf8ToInt——>

> utf8ToInt("沈維燕")[127784 32500  29141> intToUtf8(c(2778432500,29141))[1] < span>"沈維燕"> intToUtf8(c(2778432500,29141), multiple=TRUE< /span>)    # multiple: 轉換為單個字符串還是多個單獨的字符[1"沈" "維" "燕"

掃描二維碼

獲取更多精彩

美格基因

致尊敬的您:

美格基因專注微生物組學領域,不斷拓展基因組學在環境、生態、農業和醫學健康領域的應用,持續開發國際領先的產品和服務,致力於成為全球領先的微生物組學產品和服務提供者。

公司已開拓的業務領域有:16S/18S/ITS測序;16S全長測序;GeoChip、宏基因組、宏轉錄組、宏病毒組測序;單菌框架圖、完成圖。

目前已為清華大學、中國科學院、中山大學、浙江大學、美國佐治亞理工學院、香港科技大學等國內外眾多科研學術機構提供了全方位的科研服務,在行業內具備顯著影響力。

如您有任何需求和疑問,歡迎隨時諮詢,美格基因竭誠為您服務!

美格基因全力支持防控疫情
SARS-CoV-2RT-PCR檢測系統技術支持:束經理,15820208591
SARS-CoV-2高通量測序技術支持:金博士,13028825882
客服QQ:811480176
< section>郵箱:support@magigene.com
官網:http://www.magigene.com

文章為用戶上傳,僅供非商業瀏覽。發布者:Lomu,轉轉請註明出處: https://www.daogebangong.com/zh-Hant/articles/detail/R%20language%20drawing%20Chinese%20font%20solution.html

(810)
打賞 支付宝扫一扫 支付宝扫一扫
single-end

相關推薦