R语言进阶之图形参数
1. 概述
R语言是即使一款功能强大的统计语言,也是一款内容丰富的绘图工具。从原则上讲,你可以用R语言绘制出你能想到的任何图形。
你可以使用par()函数来设置绘图的相关参数(字体、坐标轴、标题等),这种方式设置的绘图参数会对后续的绘图进程持续有效,除非你修改这些参数。
# 使用par()函数设置绘图参数
par() # 查看当前的绘图参数
opar <- par() # 复制当前的绘图参数
par(col.lab="red") # 设置x轴和y轴的标签颜色为红色
hist(mtcars$mpg) # 用新设置的绘图参数绘图(mtcars是R中的内置数据集)
par(opar) # 恢复最初的绘图参数
另一种指定绘图参数的方法就是直接在绘图函数中设置,比如直接在hist()函数里就可以指定标签的颜色:
# 直接在hist()函数里指定标签颜色为红色
hist(mtcars$mpg, col.lab="red")
关于如何在不同绘图函数中设置绘图参数,请参见R语言入门系列。
接下来我将主要讲解一些重要的绘图参数,这对于后续内容的学习至关重要。
2. 文本和符号的大小
下面的表格列出一些常见控制文本和符号尺寸的选项:
选项 |
描述 |
---|---|
cex |
用于指定文本和符号的大小,其值代表绘图符号相对于默认大小的缩放倍数,默认值为1,1.5表示放大为默认值的1.5倍,而0.5则表示缩小为默认值的0.5倍 |
cex.axis |
指定坐标轴刻度文字的缩放倍数 |
cex.lab |
指定坐标轴标签的缩放倍数 |
cex.main |
指定标题的缩放倍数 |
cex.sub |
指定副标题的缩放倍数 |
3. 绘图符号
我们可以使用pch=这个参数去指定图中点的形状,它的值是数字,不同数字代表不同的符号,对于21~25号,我们需要指定边框的颜色(col=)和填充色(bg=)。具体关系如下图所示:
4. 线条
关于线条的相关选项如下表:
选项 |
描述 |
---|---|
lty |
指定线条的形状,如下图所示 |
lwd |
指定线条的宽度,2表示线宽是默认值的两倍 |
5. 颜色
下表列出与颜色相关的选项:
选项 |
描述 |
---|---|
col |
默认的颜色参数 |
col.axis |
指定坐标轴刻度的颜色 |
col.lab |
指定坐标轴标签的颜色 |
col.main |
指定标题的颜色 |
col.sub |
指定副标题的颜色 |
fg |
指定前景色 |
bg |
指定背景色 |
在R语言中,你可以通过编号、名称、十六进制符或者RGB的方式来指定具体的颜色,比如col=1、col="white"和col="#FFFFFF" 都表示的是白色。
下图就是R语言中各个颜色的编号:
你也可以使用rainbow(n), heat.colors(n), terrain.colors(n),topo.colors(n), and cm.colors(n)这些函数来创建颜色,具体内容大家自行学习,这里就不赘述了。
你可以使用colors()函数来获取R中所有的颜色名称。
6. 字体
在R中,你可以非常方便地去设置字体的尺寸和样式:
选项 |
match描述 |
---|---|
font |
指定使用的字体,1是普通字体, 2代表粗体, 3代表斜体。 |
font.axis |
指定坐标轴刻度的字体 |
font.lab |
指定坐标轴标签的字体 |
font.main |
指定标题的字体 |
font.sub |
指定副标题的字体 |
ps |
字体点的尺寸 (大约为1/72英尺),文本尺寸=ps*cex |
family |
指定文本的字体家族,标准值包括Standard values are "serif", "sans", "mono", "symbol"。 |
在实践中,我们通常会建立字体家族的映射,用简单的符号标记特定的字体家族,如下就是一个实例:
# 字体家族的映射关系
plot(1:10,1:10,type="n")
windowsFonts(
A=windowsFont("Arial Black"),
B=windowsFont("Bookman Old Style"),
C=windowsFont("Comic Sans MS"),
D=windowsFont("Symbol")
)
text(3,3,"Hello World Default")
text(4,4,family="A","Hello World from Arial Black")
text(5,5,family="B","Hello World from Bookman Old Style")
text(6,6,family="C","Hello World from Comic Sans MS")
text(7,7,family="D", "Hello World from Symbol")
关于绘图参数的讲解就先到这里,这部分的内容在后续的绘图中非常重要,希望大家熟练掌握!
- Dubbo 源码解析 —— Cluster
- 【死磕Java并发】—–Java内存模型之从JMM角度分析DCL
- 基于PhalApi2的Redis拓展
- [喵咪BELK实战(3)] logstash+filebeat搭建
- Dubbo源码解析 —— Router
- 【死磕Java并发】—–深入分析volatile的实现原理
- phalcon-入门篇3(优美的URL与Config)
- 数据库中间件 Sharding-JDBC 源码分析 —— 事务(一)之BED
- 熔断器 Hystrix 源码解析 —— 命令执行(二)之执行隔离策略
- phalapi-入门篇4(国际化高可用和自动生成文档)
- 用JavaScript动态输出的JS脚本不能执行
- Dubbo源码解析 —— 服务暴露原理
- [Golang软件推荐] RSA公私钥加解密(解决Golang私钥加密公钥解密问题)
- [喵咪大数据]Hive+Hbase关联
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 这一次搞懂Spring的XML解析原理
- 这一次搞懂Spring自定义标签以及注解解析原理
- 这一次搞懂Spring的Bean实例化原理
- 单片机入门学习十三 STM32单片机学习十 通用定时器
- Spring IOC原理补充(循环依赖、Bean作用域等)
- 这一次搞懂Spring代理创建及AOP链式调用过程
- 这一次搞懂Spring事务注解的解析
- 这一次搞懂Spring事务是如何传播的
- 这一次搞懂SpringMVC原理
- 这一次搞懂Spring Web零xml配置原理以及父子容器关系
- 这一次搞懂SpringBoot核心原理(自动配置、事件驱动、Condition)
- 全网最深分析SpringBoot MVC自动配置失效的原因
- Mybatis源码初探——优雅精良的骨架
- 深入Mybatis源码——配置解析
- 深入Mybatis源码——执行流程