当前位置: 首页 > news >正文

R 语言学习教程,从入门到精通,R 绘图 中文支持(25)

1、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.01xps_name
1 ArialUnicodeMS

看到有 ArialUnicodeMS,我们就可以用了:

pie3D(info,labels = names,explode = 0.1, main = "3D 图",family = "ArialUnicodeMS")

载入自定义字体
系统的字体库有时候不是支持的很好, showtext() 函数可以载入我们自定义的字体,可以下载字体包 ttf,然后使用 font_add() 函数添加。
这里我们使用思源黑体,思源黑体是 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 = "nhooo-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", "Nhooo", "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 = "3D图",family = "SyHei")# 去掉字体
showtext_end();
# 关闭图形设备
dev.off();

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C语言迷宫制造
  • 写个IDEA插件
  • C语言基础(二十)
  • OpenCV几何图像变换(9)仿射变换函数warpAffine()的使用
  • 【iOS安全】iPhone8 iOS14.4.2 越狱教程
  • ubuntu22.04安装redis
  • 免费分享:2000-2020年MODIS中国积雪物候数据集(附下载办法)
  • [论文阅读] mobile aloha实验部分
  • 一. 初始 Spring Boot
  • 充电桩定期检测是如何实现的
  • 【银河麒麟】银河麒麟桌面操作系统 V10 (SP1) 2403 版(ARM64)安装 Windows 软件(Wine)
  • 泰山派小手机---ubuntu 环境的搭建
  • Kubernetes的Taint污点和Toleration容忍
  • Spring Boot如何压缩Json并写入redis?
  • Window Performance API
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 【剑指offer】让抽象问题具体化
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • flutter的key在widget list的作用以及必要性
  • HTML-表单
  • JDK9: 集成 Jshell 和 Maven 项目.
  • JS专题之继承
  • mysql 5.6 原生Online DDL解析
  • mysql 数据库四种事务隔离级别
  • php的插入排序,通过双层for循环
  • Rancher-k8s加速安装文档
  • ReactNative开发常用的三方模块
  • 分布式事物理论与实践
  • 前嗅ForeSpider中数据浏览界面介绍
  • 区块链技术特点之去中心化特性
  • 微信小程序填坑清单
  • 原生Ajax
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • # C++之functional库用法整理
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #NOIP 2014# day.2 T2 寻找道路
  • #宝哥教你#查看jquery绑定的事件函数
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (4.10~4.16)
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (函数)颠倒字符串顺序(C语言)
  • (十八)SpringBoot之发送QQ邮件
  • (转载)OpenStack Hacker养成指南
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .NET C# 配置 Options
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .Net CF下精确的计时器
  • .NET WPF 抖动动画
  • .net6+aspose.words导出word并转pdf