不得不说的小心情哇

哇唔,开启分享的第二天,虽然都是代码的搬运工,但是,分享也是一种乐趣。再一次感谢大鹏。

快捷键

箭头赋值党的福利啊,表白==>Alt+_;
没有一个好记性,求助==>Tab帮你自动搜寻字母打头的函数;
实现在脚本面板和Console面板自由切换:Ctrl+1和Ctrl+2;
快捷键大全(估计不会看系列)==>Alt+Shift+K;
无意间点击成了Ctrl+Shift+r自动在你Rstudio,当前脚本面插入了节,惊不惊喜,意不意外,哈哈哈;
新建脚本:Ctrl+Shift+n;
批量替换(大爱):Ctrl+Alt+Shift+m
傻傻分不清楚,对不对,对就对了。手动微笑。。。。。

正经开始今天的记录了

昨天的数据再来一遍

> mydata2 <- as.data.frame(t(matrix(
+   co2,12,
+   dimnames = list(month.abb,unique(floor(time(co2)))))))
> #在数据上多增加一列year,将行名转为数值型
> mydata2$year<-as.numeric(rownames(mydata2))
#plot()画图,若数据为一维,则数据实际值对应纵坐标,序号对应横坐标
plot(mydata2$Sep)
#除F1,进行help外另一个好帮手example()
example(plot)
#二维散点图
plot(x=mydata2$year,mydata2$Sep)
#数据是多少变量名,就是变量与变量之间的散点图
plot(mydata2)
#此时类似于pairs(mydata2)
#像excel那样地查看数据
View(mydata2)

小助理三剑客:F1、sample()、demo()
demo()示范的函数有限,demo()运行后显示的是能示范的函数

常用画图函数

函数 用途
plot() 主要用作散点图
pairs() 散点图矩阵
symbols() 气泡图
hist() 直方图
curve() 函数曲线图
barplot() 柱状图
boxplot() 箱线图
coplot() 条件散点图
dotchart() 点图(克利夫兰点图)
stripchart() 一维散点图
image() 矩阵方格图
contour() 等高线图

plot()函数

x,y分别表示横纵轴数据,
xlab=,ylab=,来定义横纵坐标轴标签,
main=,定义标题
type=,定义把数据画成点还是线,(可供选择的有p,l,b,c,o,h,s,S,n)

cex,(character expansion)点的尺寸
lty=,(line type )线的形状
pch=’ ',(point character)点的类型,可以自定义字母,或者是下面的数字

(图片来源于《学R》、《R图形化数据分析》)
总结:
先确定type
type=‘p’—>设置pch参数;type=‘l’—>设置lty参数。

R的颜色
  • 关于R的所有颜色 http://www.stat.columbia.edu/~tzheng/files/Rcolor.pdf
  • 当col=colors[n],对应的是n位置上的颜色,n的范围[1,657]
  • 可以用colors()查看R中的657种颜色的名称
  • 关于自带配色方案的函数:rainbow(n)heat.colors(n)terrain.colors(n)topo.colors(n)cm.colors(n)gray(n)hcl(n) (>_< ) n表示的是将对应颜色分为多少n份**
    将数据进行三维展示
#将数据降维
myco2 <- unlist(mydata2[,1:12])
#为了简化操作,对浓度四舍五入
myco2 <- round(myco2)
#用向量myyear存储第二个维度
myyear <- rep(mydata2$year,12)
#用向量mymonth存储第三个维度
mymonth <- rep(1:12,each=nrow(mydata2))
#三个维度的数据准备完毕
#n根据浓度范围,确定的颜色种数
n <- diff(range(myco2))
mycolor <- rainbow(n)[myco2-min(myco2)+1]
#画图
plot(x=mymonth,y=myyear,col=mycolor,cex=10,pch=15)


按照横轴是浓度的月变化,纵轴式浓度的年变化,颜色越偏紫,浓度越大,浓度越偏红,浓度越小。

#练习3.1
mydata2$mean <- apply(mydata2,FUN = mean,MARGIN = 1)
plot(mydata2$year,mydata2$mean,type = 'p',pch=17,col='yellow',xlab = 'year',ylab = 'mean',main = 'homework3.1')

添加直线、网格、图例

  1. abline()
plot(x=mydata2$year,mydata2$Sep)
abline(h=350)
abline(h=360,v=1980,col='red')
abline(h=seq(from=320,to = 340,by = 5),v=seq(from=1970,to = 1990,by = 5),col='gray')
abline(a=-2240,b=1.3)

分别向图中添加了三次直线, abline()参数中,h(horizontal)表示水平线,v(vertical)垂直线,两个参数可以同时存在。同时存在时,对线的颜色设置成浅灰色,就变成了网格线。
abline,“截距a和斜率b的直线”,也可以画斜线
3. legend()
位置的确定有三种,确定点的(X,Y)坐标、利用特殊位置的英文、定位

legend(x=1970,y=350,legend = 'Sep',pch = 1)
legend('topleft',legend = 'Sep',pch = 1)
legend(locator(1),legend = 'Sep',pch = 1)


**注释:**可以替换的位置名称为:bottomright”, “bottom”, “bottomleft”, “left”, “topleft”, “top”, “topright”, “right”, “center”(9种)
练习3.2作业

plot(x=mydata2$year,y=mydata2$Sep)
abline(h=seq(from=min(mydata2$Sep),to = max(mydata2$Sep),by = 10),v=seq(from=min(mydata2$year),max(mydata2$year),by = 1),col='grey')

多图合一:三种布局

多图合一可以达到对比的效果,使多条曲线共享一个x-y坐标系。

第一种
  1. Step1:plot()函数画出第一组y1曲线
  2. Step2:用lines()或points()添加第二组y2曲线
#基础plot()图,在ylab的表达式中,[]表示的是下标(如图)
plot(x = 1:12,y = mydata2['1959',1:12],xlab = 'Month',ylab = expression(co[2]),ylim = c(310,370),type = 'l',lty=2,col='blue')
#points()和lines()函数添加曲线
lines(x = 1:12,y = mydata2['1997',1:12],col='red')
#或者
points(x = 1:12,y = mydata2['1997',1:12],col="red",type = 'l')

第二种
  • 副坐标轴
    上图中年份变化不明显,现在采取同横坐标,不同纵坐标,也就是创建副坐标轴
#创建副坐标轴(一次表达不明的错误尝试)
plot(x = 1:12,y = mydata2['1959',1:12],xlab = 'Month',ylab ='1959',type = "l",lty=2,col='blue')
par(new=TRUE)
plot(x = 1:12,y = mydata2['1997',1:12],ylab = '1997',type = 'l',lty=1,col='red')

#进入正餐
#1.告诉R在右侧为副坐标轴留出空间
par(mar=c(5,4,4,4))
#2.画第一张图
plot(x = 1:12,y = mydata2['1959',1:12],xlab = 'Month',ylab ='1959',type = "l",lty=2,col='blue')
#3.告诉R,下一张图跟第一张图叠加
par(new=TRUE)
#4.画在第二张图,但暂时不画坐标轴,也不加标签
plot(x = 1:12,y = mydata2['1997',1:12],type = 'l',lty=1,col='red',axes = FALSE,ylab = '',xlab = '')
#5.在右侧画出副坐标轴
axis(side = 4,col = 'red')
#6.为副坐标轴添加名称
mtext(side = 4,text = '1997',line = 3,col = 'red')


注释:
1.第一三条,par(mar=c())表示给下,左,上,右(顺时针)分别留白多少,par(new=TRUE)表示指定下一条作图命令跟上一条作图区域相同.
2.第四条plot()函数,axes=FALSE, 禁止显示默认的坐标轴.
3.第五条axis()仍然是设置坐标轴,此时自定义设置,side取值1,2,3,4.表示的是下,左,上,右(顺时针),该条命令表示在右侧画一条红色的坐标轴.
4.mtext(),添加文字,作为新坐标轴的标签,side的取值和含义同理.line表示文字与图表区的距离.

第三种
  • 小图拼贴
    par(mfrow=c()),mfrow表示(matrix of figures entered row-wise)将图按照几行几列进行展示
#按照一行两列一次进行画图
par(mfrow=c(1,2))
plot(x = 1:12,y = mydata2['1959',1:12],xlab = 'Month',ylab ='1959',type = "l",lty=2,col='blue')
plot(x = 1:12,y = mydata2['1997',1:12],xlab = "Month",ylab = '1997',type = 'l',lty=1,col='red')

保存图片

代码法

#代码法保存图片
#打开一张宽为8,高为4的白纸
pdf('F:/R lab/学R/r4r/fig2_13.pdf',width = 8,height = 4)
#在白纸上画图
plot(x = mydata2$year,y = mydata2$Jan)
#画完了,把纸张收起来
dev.off()

注释: pdf()函数将图片保存为pdf格式.还可以用png(),jpg()等

项目 内容
作图函数 plot(), boxplot()
点形状 pch=1,pch=‘z’
线形状 lty=2
颜色 col = ‘blue’, rainbow(), colors()
添加要素 lines(), points(), abline(), axis(),box(),legend(), text(), mtext(), expression()
多图布局 par(), layout()
保存图片 pdf(), jpg(), png()

不得不再一次表白大鹏,简洁明了

#练习3.3
x <- mydata2$year[1:6]
y <- mydata2$Sep[1:6]
#方案1:逐个画图
pdf('F:/R lab/学R/r4r/9in1.pdf')
par(mfrow=c(3,3),cex=1.2,mar=c(3,2,0.5,1))
plot(x = x,y = y,type = 'p')
legend('topleft',legend = 'p',cex = 0.8,bty = 'n',text.col = 'blue')
plot(x = x,y = y,type = 'l')
legend('topleft',legend = 'l',cex = 0.8,bty = 'n',text.col = 'blue')
plot(x = x,y = y,type = 'b')
legend('topleft',legend = 'b',cex = 0.8,bty = 'n',text.col = 'blue')
plot(x = x,y = y,type = 'c')
legend('topleft',legend = 'c',cex = 0.8,bty = 'n',text.col = 'blue')
plot(x = x,y = y,type = 'o')
legend('topleft',legend = 'o',cex = 0.8,bty = 'n',text.col = 'blue')
plot(x = x,y = y,type = 'h')
legend('topleft',legend = 'h',cex = 0.8,bty = 'n',text.col = 'blue')
plot(x = x,y = y,type = 's')
legend('topleft',legend = 's',cex = 0.8,bty = 'n',text.col = 'blue')
plot(x = x,y = y,type = 'S')
legend('topleft',legend = 'S',cex = 0.8,bty = 'n',text.col = 'blue')
plot(x = x,y = y,type = 'n')
legend('topleft',legend = 'n',cex = 0.8,bty = 'n',text.col = 'blue')
dev.off()
#方案2:循环化简操作
pdf('F:/R lab/学R/r4r/9in1.pdf')
par(mfrow=c(3,3),cex=1.2,mar=c(3,2,0.5,1))
for (i in c('p','l','b','c','o','h','s','S','n')) {plot(x = x,y = y,type = i)legend('topleft',legend = i,cex = 0.8,bty = 'n',text.col = 'blue')
}
dev.off()

#准备数据
mydatasub <- t(mydata2[as.character(seq(1960, by = 5, length.out = 8)), 1:12])
x <- rep(1:12, 8)
y <- as.vector(mydatasub)
group <- rep(colnames(mydatasub), each = 12)
library(lattice)
xyplot(y ~ x|group, type = c('p', 'l'), xlab = 'Month', ylab = expression(CO[2]))library(ggplot2)
qplot(x, y, col = group, geom = c("point", "line"), xlab = 'Month', ylab = expression(CO[2]))


注释:

  1. 函数
  • seq(from=,to=,by=.length.out=n)length.out表示等差的个数
  • t()转置,转置前,从mydata2中,将等差数列形成的数字,转为因子型,找到对应年份12个月的浓度,相当于subset()函数,subset(数据,条件,选择哪些变量进行展示) (但是我没试出来)
  1. 转换逻辑
  • 因为要将年份作为X轴,所以需要将年份作为列来展示,在将矩阵(二维)降为向量(一维),默认一列一列进行展示.故用到t().
  • 将数据拆散,维度必须都相等,比如,此案例中数据量是12x8, 因此对于年份或者月份重复时,务必保持数据量相等,在对年份或者月份进行重复,rep()函数参数设置中选择是times=,还是each=,要根据浓度展开的含义.
名称 作用
F1 展示函数的帮助信息
F2 演示函数源代码
tab 提示和自动补全
example() 函数示例,圆括号里填函数名
demo() 演示,圆括号为空时查看所有可用演示
vignette() 技术文档,vignette(all = TRUE)展示所有可用文档

R入门(二)---快捷键、plot基础画图,多图拼接相关推荐

  1. 转 Python爬虫入门二之爬虫基础了解

    静觅 » Python爬虫入门二之爬虫基础了解 2.浏览网页的过程 在用户浏览网页的过程中,我们可能会看到许多好看的图片,比如 http://image.baidu.com/ ,我们会看到几张的图片以 ...

  2. OpenCL入门二:OpenCL基础概念

    基础概览 原理建议阅读下面文章,文中介绍了OpenCL相关名词概念: https://www.cnblogs.com/yxwkf/p/4552029.html 简介 http://opencl.cod ...

  3. Python爬虫教程——入门一之爬虫基础了解

    1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...

  4. r语言 断轴 画图_R语言基础画图/绘图/作图

    R语言基础画图 R语言免费且开源,其强大和自由的画图功能,深受广大学生和可视化工作人员喜爱,这篇文章对如何使用R语言作基本的图形,如直方图,点图,饼状图以及箱线图进行简单介绍. 0 结构 每种图形构成 ...

  5. QR code 二维码基础入门教程

    QR code 二维码基础入门教程 本文为 QR Code Tutorial: Introduction 的总结,详细内容请查看原文 Introduction History and Informat ...

  6. Python入门(二)——IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式化

    Python入门(二)--IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式化 我们从今天就开始正式的学习PY交易了,PY交易还行,我们有基础之后学习起来倒不是说 ...

  7. r语言各形状编号_R语言基础画图

    过去一个月实验比较忙,很久没有写点东西了,今天要给amina画图,因此学习了一下R语言的基础画图.ide 1.plot函数函数 plot(x,y,xlim=c(0,100),ylim=c(0.4,1) ...

  8. SQL基础使用入门(二): DML语句和DCL语句

    SQL语句第二个类别--DML 语句 DML是数据操作语言的缩写,主要用来对数据表中数据记录实例对象进行操作,包括插入.删除.查找以及修改四大操作,这也是开发人员使用中最为频繁的操作. 1.插入记录 ...

  9. [网络安全自学篇] 二十.Powershell基础入门及常见用法(二)

    这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.前文分享了Powershell基础入门知识,涉及基础概念.管道和重定向.执行外部命 ...

最新文章

  1. 【美团语音交互部】 NLP/知识图谱/语音识别等算法职位开放招聘!
  2. 编程实现newton插值c++_数据体操:数据处理和IDW地理插值算法
  3. HTML Table 固定列宽,实现excel表格效果
  4. nodejs实践录:开篇
  5. mysql57包解压安装_mysql5.7解压包安装教程
  6. /bin/bash: bash not found Alpine linux安装bash
  7. Oracle数据库的静默安装详解
  8. 《C Primer Plus(第6版)中文版》一2.12 编程练习
  9. c# timer 销毁_C# System.Timers.Timer定时器的使用和定时自动清理内存应用
  10. 基于Java和Python实现简单的CA认证系统
  11. 硅谷课堂第十二课-公众号点播课程和直播管理模块
  12. 蓝桥杯算法训练超全习题题解——ALGO-3.K好数**
  13. 通过搜狗蜘蛛池,让网站收录排名提升
  14. 计算机中系统更新是指,Mac电脑操作系统更新了什么功能
  15. 锤炼腹肌的好方法:健腹轮的折叠刀式俯卧撑
  16. linux系统下能玩网页游戏下载软件,最适合玩游戏的Linux 系统
  17. 哈登独得40分保罗复出 火箭主场103:98复仇魔术
  18. jsp70786体育馆售票门票系统
  19. K-means,K-means++方法详解-机器学习分类问题常见算法
  20. WordPress BuddyPress 存在越权漏洞RCE(CVE-2021-21389)

热门文章

  1. 每日一题2021.5.13 D. Corrupted Array
  2. 第8章实验1:学生成绩管理系统V1.0
  3. ova后缀的文件是干什么用的
  4. win10打字突然不显示选字框了
  5. 微信小程序云开发快速入门手册-告别切图仔的时刻到了
  6. 摩托罗拉v980显示服务器,摩托罗拉v980手机充电器我有一个摩托罗拉 – 手机爱问...
  7. [Win32] API Hook(2)在64位系统上的实现
  8. 英语口语255之每日十句口语
  9. IP地址、子网掩码、网络号、主机号、子网号的计算
  10. c++并查集(详细总结)