R语言与医学统计图形【6】低级绘图函数
R语言基础绘图系统
基础绘图包之低级绘图函数——定义坐标轴、图例、文本
低级绘图函数:本身不具备图形绘制能力,只是在已有图形基础上添加元素。
| 函数 | 功能 |
|---|---|
| arrows | 添加箭头 |
| axis | 坐标轴 |
| box | 图形边框 |
| abline | 添加直线 |
| clip | 修剪图形 |
| locator | 识别图中点的坐标 |
| layout | 切分画布 |
| legend | 添加图例 |
| lines | 添加线条 |
| segments | 添加线段 |
| rug | 添加小地毯 |
| polygon | 构建多边形 |
| points | 添加散点 |
| titles | 添加标题 |
| text | 添加文字 |
| mtext | 在图形四周添加文字 |
| grid | 添加背景网格线 |
1.自定义坐标轴及文本
N <- 200
x <- seq(-4,4,length=N)
y1 <- sin(x)
y2 <- cos(x)
op <- par(mar=c(5,4,4,4))
xlim <- range(x) #返回最大值和最小值
ylim <- c(-1.1,1.1)
plot(x,y1,col='blue',type='l',
xlim = xlim,ylim=ylim,
axes=F, #先不画坐标
xlab = '',ylab = '',main = 'title')
axis(1)
#axis中1,2,3,4分别表示下,左,上,右坐标
axis(2,col = 'blue')
par(new=T) #在刚绘好的图上添加新图
plot(x,y2,col='red',type='l',
xlim=xlim,ylim=ylim,
axes = F,xlab = '',ylab = '',main = '')
axis(4,col = 'red')
#添加边缘文字
mtext('first Y axis',2,line = 2,col = 'blue',cex = 1.2)
#mtext第二个参数1,2,3,4也是表下左上右
mtext('second Y axis',4,line = 2,col = 'red',cex=1.2)

自定义不同的纵坐标。
plot(rnorm(100),axes = F,col='orange',pch=16,
ylab = 'scatter points',xlab = 'x axis',
ylim = c(-3.5,3.5))
#par函数中xaxt/yaxt设为n,表示不绘制坐标轴刻度和标签,但仍有一条坐标轴线
#这和axes稍有不同
axis(1,at=seq(0,100,10), #定义刻度线位置
labels = LETTERS[1:11],
col = 'red',lwd = 1.3, #坐标轴颜色
col.ticks = 'pink') #刻度颜色
axis(2,at=seq(-3,3,1),col = 'blue',
col.ticks = 'sky blue',lwd = 1.3)
#当自定义的坐标轴不能完全显示时(画布太小),可设置xlim/ylim解决
abline(h=0, #y轴为0的水平线
col='red',lwd=2,lty=2)
curve(sin,
0,100, #from...to...
add = T) #添加到现有图形

2.图例
a=c(1:5)
b=c(2,3,3,4,5)
c=c(4,5,2,3,1)
plot(b~a,type='b',bty='l',
xlab='value of a',ylab='value of b',
col='red',lwd=3,pch=17,ylim=c(1,5))
lines(c~a,col='blue',lwd=3,pch=19,type='b')
legend(#'bottomleft', #位置参数:字符串 topright
3,5, #位置参数:坐标位置
legend=c('Group 1',"Group 2"), #图例标签
col = c('red','blue'), #图例填充色
pch=c(17,19), #图标形状
bty='n', #定义边框,n不要
pt.cex = 2, #图标大小
cex = 1.2, #标签文字大小
text.col = 'black', #标签文字颜色
horiz = F, #是否水平放置,默认F(垂直)
inset = c(0.1,0.1),#距离x、y轴程度,0-1
x.intersp = 0.1, #水平图标间距
y.intersp = 0.4) #竖直图标间距
#后两个参数对于图形中图例非常多时很有用

plot(iris$Sepal.Length~iris$Sepal.Width,
pch=c(21:23)[iris$Species],
#三种不同点型对应三个不同品种
col=c('orange','sky blue','pink')[iris$Species],
bg=c('orange','sky blue','pink')[iris$Species])
legend( #x=3.7,y=8.0, #坐标法
locator(1), #去图上找一个合适位置,左击鼠标
legend = c('Setosa','Versicolor','Virginica'),
col=c('orange','sky blue','pink'),
pch = 21:23,
pt.cex = 2,
y.intersp = 0.8, #图例间距
pt.bg = c('orange','sky blue','pink'))

3. 添加文本
x <- rnorm(1000)
hist(x,xlim = c(-4,4))
usr <- par('usr') #为找到画布四个角的坐标,左下角/右下角/左上角/右下角
clip(usr[1],-1,usr[3],usr[4])
#切割画布
hist(x,col = 'red',add=T)
text(-3,50,labels = 'red area',
col = 'red',srt=60,cex=2)
#切割另一个矩形
clip(1,usr[2],usr[3],usr[4])
hist(x,col = 'blue',add=T)
text(x=3,y=50,labels = 'blue area',
col='blue',srt=300,cex=2)

示例2.
data <- sample(20:80,20)
par(mar=c(4,3,3,1))
barcenter <- barplot(data,col='skyblue',axes = F,
ylim = c(-5,100)) #限定y轴范围,为了使后面文本显示出来
#存储了条柱中心横坐标
axis(2,at=seq(0,100,10))
text(barcenter,-2,labels = LETTERS[1:20],
col = 'red',cex = 0.8)

示例3.
mycars <- data.frame(car=c('Honda','Benz','BMW',
'Audi','Chery','Toyota','Ford'),
mtg=c(4,5.2,5.5,2.8,1.8,2.8,3))
plot(mycars$mtg,cex=mycars$mtg,col='pink',pch=21,
bg='lightblue',ylab='cars\' mtg',xlab='cars',
xlim = c(0,7.5))
text(1:7,mycars$mtg,labels = mycars$car)

R语言与医学统计图形【6】低级绘图函数的更多相关文章
- R语言与医学统计图形【7】低级绘图函数
R语言基础绘图系统 基础绘图包之低级绘图函数--气泡图.一页多图.背景网格.添加线条和散点.数学表达式 4.气泡图 symbols是高级绘图函数,可在图上添加标记,标记的形状包括:circles,sq ...
- R语言与医学统计图形【1】par函数
张铁军,陈兴栋等 著 R语言基础绘图系统 基础绘图包之高级绘图函数--par函数 基础绘图包并非指单独某个包,而是由几个R包联合起来的一个联盟,比如graphics.grDevices等. 掌握par ...
- R语言与医学统计图形【4】直方图、金字塔图
R语言基础绘图系统 基础图形--直方图.金字塔图 3.直方图 参数设置及比较. op <- par(mfrow=c(2,3)) data <- rnorm(100,10,5) hist(d ...
- R语言与医学统计图形【3】条形图、误差图
R语言基础绘图系统 基础图形--条形图.误差图 3.条形图 barplot接收的数据是矩阵而非数据框. data <- sample(c(50:80),5) barplot(data,col=h ...
- R语言与医学统计图形【8】颜色的选取
R语言基础绘图系统 基础绘图包之低级绘图函数--内置颜色. 1.内置颜色选取 功能657种内置颜色.colors() 调色板函数:palette(), rgb(), rainbow(). palett ...
- R语言与医学统计图形【5】饼图、条件图
R语言基础绘图系统 基础图形--饼图.克利夫兰点图.条件图 6.饼图 pie(rep(1,26),col=rainbow(26), labels = LETTERS[1:26], #标签 radius ...
- R语言与医学统计图形【2】散点图、盒形图
R语言基础绘图系统 基础图形--散点图.盒形图 plot是一个泛型函数(generic method),对于不同的数据绘制不同的图形. par函数的大部分参数在plot中通用. 1.散点图 plot绘 ...
- R语言与医学统计图形-【28】ggplot2扩展包ggrepel、ggsci、gganimate、ggpubr
ggplot2绘图系统--扩展包ggrepel.ggsci.gganimate.ggpubr等 部分扩展包可在CRAN直接下载,有些需借助devtools包从Github下载. 1. ggrepel包 ...
- R语言与医学统计图形-【33】生存曲线、森林图、曼哈顿图
1.生存曲线 基础包survival+扩展包survminer. survival包内置肺癌数据集lung. library(survival) library(survminer) str(lung ...
随机推荐
- LeetCode:BFS/DFS
BFS/DFS 在树专题和回溯算法中其实已经涉及到了BFS和DFS算法,这里单独提出再进一步学习一下 BFS 广度优先遍历 Breadth-First-Search 这部分的内容也主要是学习了labu ...
- Java:泛型小记
Java:泛型小记 对 Java 中的 泛型类,做一个微不足道的小小小小记 泛型实现 概述 开篇: List<String> l1 = new ArrayList<String> ...
- Java:Object对象小记
Java:Object对象小记 对 Java 中的 Object 对象,做一个微不足道的小小小小记 Object 的常用方法有哪些 clone() 方法:用于创建并返回当前对象的一份拷贝: 在Java ...
- 表单编辑时el-form的validate方法执行无效,阻塞代码运行 - Element UI踩坑记录
今天在用element-ui写管理后台需求时,遇到一个奇怪的问题 一个正常带校验的表单,在新增列表数据时表单校验功能正常: 但是在新增之后再去编辑数据时,表单校验却失效了,甚至阻塞了后续的代码执行,控 ...
- Noip模拟80 2021.10.18
预计得分:5 实际得分:140?????????????? T1 邻面合并 我考场上没切掉的大水题....(证明我旁边的cty切掉了,并觉得很水) 然而贪心拿了六十,离谱,成功做到上一篇博客说的有勇气 ...
- Ubuntu下在当前用户下安装JDK1.8
Oracle官网的JDK下载需要用户登录才能下载,JDK1.8的下载地址:https://www.oracle.com/cn/java/technologies/javase/javase-jdk8- ...
- 深入理解和运用Pandas的GroupBy机制——理解篇
GroupBy是Pandas提供的强大的数据聚合处理机制,可以对大量级的多维数据进行透视,同时GroupBy还提供强大的apply函数,使得在多维数据中应用复杂函数得到复杂结果成为可能(这也是个人认为 ...
- 如何系统学习C 语言(中)之 指针篇
谈到指针,我们可能会想到钟表上的指针,但这里的指针不是现实生活中看得见摸得着的钟表上的指针,c 语言中的指针只存在于逻辑思维中,物理上并不存在. 同时,指针也是C 语言中最精华的部分,通过灵活地运用指 ...
- $router 和 $route的区别
router router是VueRouter的一个对象,通过Vue.use(VueRouter)和VueRouter构造函数得到一个router的实例对象,这个对象中是一个全局对象,他包含了所有的路 ...
- webpack 之开发环境优化 source-map
webpack 之开发环境优化 source-map /** * source-map:一种 提供源代码到构建后代码映射 技术 (如果构建后代码出错了,通过映射可以追踪源代码错误) * [inline ...