R多行交叉作图
#中文 UTF-8编码 3.4.0
library(Hmisc)
mydata = read.table('clipboard',header = T)
head(mydata)
mycol=c(rgb(1,0,0,0.3),'cadetblue','darkseagreen',
'aquamarine3','darkslateblue','red','blue')
coltextandlabel = 'black'
####################################################################
dev.new()
close.screen(all.screens = T)
split.screen(c(1,1))
mybottom = c(seq(0.7,0.25,length.out = 4),0.12,0)
mytop = c(seq(1,0.45,length.out = 4),0.25,0.13)
mylayout = matrix(data = c(rep(0,6),rep(1,6),mybottom,
mytop),ncol = 4)
split.screen(mylayout)
mtck =-0.03;mmgp = c(3.5,0.5,0);mline = 2.5; mlwd = 2
#########################################################
id=2
screen(id)#准备绘制第2号屏幕,也是最上面的图
par(tck = mtck,mar=c(0,4,2,4),mgp=mmgp,las=1)
yl = range(na.exclude(mydata$NO3))
plot(x=mydata$depth,y=mydata$NO3,type='l',axes=F,lwd=mlwd,
ylab='',xlab='',col=mycol[id],ylim=yl)
#axis(4,at=seq(0,4.8,length.out = 4),col=mycol[id],col.axis=mycol[id])
axis(4,at=seq(0,4.8,length.out = 4))
mtext(side = 4,line = mline,las=0,
text = expression(paste(NO[3]^'-',' (μeq/L)')))
#########################################################
id=3
screen(id)#准备绘制第3号屏幕,也是最上面的图
par(tck = mtck,mar=c(0,4,0,4),mgp=mmgp,las=1)
yl = range(na.exclude(mydata$NH4))
plot(x=mydata$depth,y=mydata$NH4,type='l',axes=F,lwd=mlwd,
ylab='',xlab='',col=mycol[id],ylim=yl)
axis(2,at=seq(0,12,length.out = 4))
mtext(side = 2,line = mline,las=0,
text = expression(paste(NH[4]^'+',' (μeq/L)')))
#########################################################
id=4
screen(id)#准备绘制第3号屏幕,也是最上面的图
par(tck = mtck,mar=c(0,4,0,4),mgp=mmgp,las=1)
yl = range(na.exclude(mydata$Ca))
plot(x=mydata$depth,y=mydata$Ca,type='l',axes=F,lwd=mlwd,
ylab='',xlab='',col=mycol[id],ylim=yl)
axis(4,at=seq(0,5400,length.out = 4))
mtext(side = 4,line = mline,las=0,
text = expression(paste(Ca^'2+',' (μeq/L)')))
#text = expression(paste(Ca^'2+','\n(μeq/L)'
#erase.screen(4)
#########################################################
id=5
screen(id)#准备绘制第3号屏幕,也是最上面的图
par(tck = mtck,mar=c(0,4,0,4),mgp=mmgp,las=1)
plot(x=mydata$depth,y=mydata$Mg,type='l',axes=F,lwd=mlwd,
ylab='',xlab='',col=mycol[id])
axis(2,at=seq(0,600,length.out = 4))
mtext(side = 2,line = mline,las=0,
text = expression(paste(Mg^'2+',' (μeq/L)')))
#########################################################
id=6
screen(id)#准备绘制倒数第二个屏幕,也是最上面的图
prdata = cbind(mydata$depth,mydata$precipitation.mm.)
prdatan = prdata[!is.na(prdata[,2]),]
range(prdatan[,2])
par(tck = mtck,mar=c(0,4,0,4),mgp=mmgp,las=1)
plot(x=prdatan[,1],y=prdatan[,2],type='l',axes=F,
ylab='',xlab='',col=mycol[id])
axis(4,at=seq(250,500,length.out = 3),tck=-0.05)
mtext(side = 4,line = mline,las=0,
text = 'Pr.(mm)')
#########################################################
id=7
screen(id)#准备绘制倒数第一个屏幕,也是最上面的图
wqldata = cbind(mydata$depth,mydata$w.q.l.mm.)
wqldatan = wqldata[!is.na(prdata[,2]),]
range(wqldatan[,2])
par(tck = mtck,mar=c(2.5,4,0,4),mgp=mmgp,las=1)
plot(x=wqldatan[,1],y=wqldatan[,2],type='l',axes=F,
ylab='',xlab='',col=mycol[id])
axis(2,at=seq(400,800,length.out = 2),tck=-0.07)
mtext(side = 2,line = mline,las=0,
text = 'w.q.l.(mm)')
#########################################################
id=1
screen(id,new=F)
par(tck = -0.01,mar=c(2.3,4,2,4),mgp=c(2.3,1,0))
plot(x=mydata$depth,y=mydata$Mg,type='n',axes=F,
ylab='',xlab='',col=mycol[id])
axis(1,at=seq(0,2200,200),padj = -1)
mtext(side = 1,text = 'Depth (cm)',line = 1.3)
box()
majorvline=mydata$depth[which(mydata$THICK!='NA')]
abline(v= majorvline,col='orangered',lty=1,lwd=1.5)
minorvline=mydata$depth[which(mydata$THIN!='NA')]
abline(v= minorvline,col=mycol[id],lty=2,lwd=1)
at3=mydata$depth[which(mydata$alllabel!='NA')]
lab3=mydata$alllabel[which(mydata$THICK!='NA')]
mtext(side = 3,at=majorvline,text = c(lab3),cex=1,col='orangered')
R多行交叉作图的更多相关文章
- 【R语言系列】作图入门示例一
假设有如下数据,我们使用plot函数作图 月龄 体重 月龄 体重 1 4.4 9 7.3 3 5.3 3 6.0 5 7.2 9 10.4 2 5.2 12 10.2 11 8.5 3 6.1 R语 ...
- R随机森林交叉验证 + 进度条
library(data.table) library(randomForest) data <- iris str(data) #交叉验证,使用rf预测sepal.length k = 5 d ...
- 使用 win+r 命令行打开我们的桌面应用(处女座的福音)
首先新建一个文件夹,名为quickapp,然后在地址栏复制文件目录地址,进入系统高级设置,修改系统环境变量Path,双击后选择新建,输入quickapp文件目录地址,确认保存. 如何修改path变量? ...
- 【R】行或列数目不同的两个数据框如何用rbind/cbind合并?
目录 前言 方法一:dplyr的bind_rows 方法二:plyr的rbind.fill 前言 通常我们用rbind和cbind合并相同行列的数据框.当两个数据框具有不同行列数目时,直接用会报错. ...
- 【editplus经常用的快捷键】Editplus 选中一行ctrl+r,Edit 合并行 Ctrl+Shift+J 合并选定行 删除当前行
Editplus 选中一行: ctrl+rEditplus 复制一行: ctrl+r选择行,然后ctrl+c复制.复制一行到下一行中:Editplus有:Ctrl+j 复制上一行的一个字符到当前行Ed ...
- [R] 如何在Linux命令行进行参数传入?
以前由于R命令行传参不友好,经常嵌套在其他程序语言(如Perl/Python)中来进行传参,但现在也陆续有一些方式来实现R的传参了,这里简单罗列下. 方法一 最传统的方法就是使用系统自带的comman ...
- 深入对比数据科学工具箱:Python和R之争
建议:如果只是处理(小)数据的,用R.结果更可靠,速度可以接受,上手方便,多有现成的命令.程序可以用.要自己搞个算法.处理大数据.计算量大的,用python.开发效率高,一切尽在掌握. 概述 在真实的 ...
- R语言学习2:绘图
本系列是一个新的系列,在此系列中,我将和大家共同学习R语言.由于我对R语言的了解也甚少,所以本系列更多以一个学习者的视角来完成. 参考教材:<R语言实战>第二版(Robert I.Kaba ...
- R数据分析:潜类别轨迹模型LCTM的做法,实例解析
最近看了好多潜类别轨迹latent class trajectory models的文章,发现这个方法和我之前常用的横断面数据的潜类别和潜剖面分析完全不是一个东西,做纵向轨迹的正宗流派还是这个方法,当 ...
随机推荐
- git使用记录_备忘
---恢复内容开始--- 一.将本地的文件上传到git 1.cd 本地文件目录 2.git init git init 命令使git命令可以管理当前的目录 3.git remote add origi ...
- 做一个vue的todolist列表
<template> <div id="app"> <input type="text" v-model="todo&q ...
- PAT甲级1143 Lowest Common Ancestor【BST】
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805343727501312 题意: 给定一个二叉搜索树,以及他的前 ...
- 部署WEB项目到服务器(四)部署WEB项目Forum到linux服务器(Ubuntu)详解
突发奇想,想在自己电脑上部署一个web网站. 1,使用Navicat for MYSQL客户端创建WEB项目数据库: Navicat for MYSQL连接虚拟机中的mysql数据库 启动mysql数 ...
- axios库的使用
axios是基于Promise 用于浏览器和 nodejs 的 HTTP 客户端:可以用在webpack + vuejs 的项目中 原文 https://github.com/axios/axios ...
- websocket作用
1.即时通讯 web即时通讯(网页的QQ,聊天系统等)可以通过websocket实现. 2.轮询 web开发中,有时需要通过轮询(比如时间间隔5秒)去服务器读取数据. 使用HTTP协议向服务器发送re ...
- -webkit-line-clamp、-webkit-box-orient vue 打包部署后不起作用??
场景分析:实际开发中,文字描述过长,需要两行或三行显示缩略显示: 实现过程: 实现过程遇到的问题:打包到线上后发现并没有-webkit-box-orient属性,导致省略号并没有按预期展示: 解决方法 ...
- 经典的PHPer为什么被认为是草根?
PHPer是草根吗? 从PHP诞生之日起,PHP就开始在Web应用方面为广大的程序员服务.同时,作为针对Web开发量身定制的脚本语言,PHP一直秉承简单.开源的思想,这也使得PHP得以快速的发展,并且 ...
- Python openpyxl、pandas操作Excel方法简介与具体实例
本篇重点讲解windows系统下 Python3.5中第三方excel操作库-openpyxl: 其实Python第三方库有很多可以操作Excel,如:xlrd,xlwt,xlwings甚至注明的数据 ...
- windows程序设计 获取系统文件路径
获取系统文件路径,打印到txt文件中. #include <windows.h> int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hP ...