R可视化:plot函数基础操作,小白教程
最近迷恋上了画图,一方面是觉得挺有意思的,另一方面是觉得自己确实画图方面比较弱,所以决定比较系统地回顾反思一下,同时顺带记录下来分享给大家。也确实是好久好久没更新文章了,真的是杂事太多太忙太牵扯精力没法更新,好多粉丝的消息也都回不了。
还有一个原因就是画图这个东西,可以学一点记一点,然后写一点,碎片化时间可以完全利用起来,写统计方法的话,是需要大量整块的时间去思考的,思路断了下次相连起来就特别困难,所以如果不是特别闲,有大量整块的时间,感觉我自己也很难写的出来了。因为太多是精力被牵扯,稍有闲暇时间就只想躺平在床上,哪有心力写什么公众号哦,如今这个氛围世道下,作为一名青年教师,真的很难有整块时间进行深度工作。
说到深度工作,这儿将深度工作的理念分享给大家,我挺认可这些话的,不过眼前似乎看不到鼓励深度工作的氛围:
卡尔·纽波特先生认为,深度工作是在无干扰的状态下专注进行的职业活动,从而使人的认识能力达到极限。
他认为,深度工作能够创造新价值,提升技能,而且难以复制。也就是我们常讲的心无旁骛和专心致志,是深度工作的精神状态。
和深度工作相对应,纽波特也提出浮浅工作的概念,他认为,浮浅工作是对认知要求不高的事务性工作,这类工作往往在受干扰的情况下开展,浮浅工作通常不会创造太多的价值,而且容易复制。
深度工作才能创造更高价值,其成果才难以复制,深度工作才能使人有所见树和获得成功。纽波特认为,深度工作的能力日益稀少,而深度工作的价值在社会经济中日益提升。
因此培养深度工作这项技能,将其内化为工作生活核心的人,将会取得成功,这就是为什么我们要深度工作。在现代社会,无论是经济生活还是技术进步,都是一个十分复杂的系统,不管我们从事什么工作,都需要静下心来,深度学习,深度思考,深度工作。
当前,我们大力提倡工匠精神,我觉得工匠精神的核心就是深度工作。工匠精神必须是一丝不苟,必须是见微知著,必须是持之以恒,而这些特点正是深度工作所必需的。
我常想,我国古代一些巧夺天工的建筑艺术,那不仅需要精密的计算和设计,还需要精益求精的建造。那个时代虽然科技并不发达,但工匠们凭着比较单一的知识和经验,全神贯注地去做,把工作做到了极致。
在当代社会,陈景润破解歌德巴赫猜想、屠呦呦发明青蒿素靠深度工作,袁隆平培育新稻种靠的也是深度工作。
我们今天提倡深度工作,对于重拾和筑牢我国的工匠精神至关重要。
所以今天就只能给大家写一些比较肤浅的,最最最基础的作图函数plot,希望大家不要嫌弃哈。
plot函数常用参数介绍
首先plot函数可以接受一系列的参数,通过参数的组合修改基本上可以画出你想要的任何图形,plot可以接受的常见的参数如下:
常见的图形参数的意思,直接拉一张表给大家:
表中都是一些很简单的描述,我相信大家一看就懂,这儿要给大家提的是type,tpye参数可以控制图的类型,常见的图的类型一览如下:
比如你要画一个点图,就可以写type='p',要画一个线图就可以写type='l'等等,其余的type对应的图的样子如下图:
就是你只要设定好了x和y的数据,你想画个啥图,就将type设置为对应的啥就可以。
还要给大家介绍颜色参数col的表示,col的表示有很多种方法,比如你想要你图呈红色,只需要将col参数设置为col="red"就行,那么当然不止可以设置为红,R有很多预先设定好的颜色可以供你选择,你在console中运行colors()就可以看到预设的颜色了,如下:
总共其实有657个颜色,这儿我就只截图了这么多而已哈。657个颜色如下,可以随便选:
其实颜色的设定还有很多别的方式,比如可以用颜色的index,颜色names,也可以用RGB,也可以用十六进制表示都行:
颜色介绍完了我们再看las参数,轴标签的style可以用las参数修改,什么意思呢,就是我们的轴标签可以选择是和轴水平,还是一直水平,或者一直垂直。什么意思呢?大家看这幅图:
可以看到轴标签都是和轴平行的(y轴的标签和y轴平行),这个时候我们将y轴的标签改为水平才更符合我们的读图习惯,这个时候我们就可以将las设置为1,得到如下的图:
此时大家再注意纵轴的标签,可以看到也变为平行分布了,这个就是las参数的作用。
继续看bty参数,这个参数是用来改画图的框框的,就是说默认我们用plot作图都会带一个框框,如下:
比如我想要一个无框图我就可以将bty设置为n,然后就得到效果如下,没有框框只有轴:
plot函数中还有个pch参数是控制点的类型的,取值意义如下,大家也可以换着用用试试:
比如我想要我的点是空心菱形,我就可以设置pch=5,就可以得到下面的图:
上图的完整代码如下:
plot(pressure,pch=21,col='#eb280a', bg="lightblue",las=1,
cex=1,type='p',bty='n'
)
plot作图时的图例操作
我们在一个图中画多组对象的时候,这个时候就需要图例来帮助我们读图,比如对下面的图,这个图中有两组数据,但却没有图例,我们不知道三角形和圈圈代表啥:
我想加一个图例,这个时候就需要继续运行legend函数,比如我想圈圈代表‘关注’,三角代表‘Codewar’,我就可以写出如下代码,这儿的“关注”和“Codewar”你都可以换成你想的任何字符哈,这儿仅用它举例:
legend(0,800,
c("关注","Codewar"), pch=c(19,17), col=c("lightblue","blue"))
图例当然也可以改,首先就是改位置,位置的关键字有9个,对应的位置如下图:
图例的位置可以用关键字改,也可以更加的个性化,用坐标改也是可以的,其可以接受的参数如下图:
比如我想将原来的图例换成红色的背景,然后放在(25,800)这个坐标上,我就可以写出如下代码:
legend(25,800,
bg = 'red',
c("关注","Codewar"), pch=c(19,17), col=c("lightblue","blue"))
运行后得到下图:
大家可以看到一个红色背景的图例已经在对应位置加上了,但是仔细观察上图,其实我们现在图是没有边框的,这个时候图例加个边框也不合适,所以我还想设置下图例的边框,甚至我还想改图例中的字体,甚至图例整体的大小,甚至是....统统都是可以的哈,就是这么牛!
比如,我现在突发奇想,我想给我的图例加一个标题,再将其变小一点,放在右下角,并且让图例中的字水平排列,我就可以写出如下代码:
legend("bottomright", title="欢迎大家",
c("关注","Codewar"),col=c("lightblue","blue"), horiz=TRUE, cex=0.4,
box.lty=0,
bg = 'red',
text.font=4
)
依然是给大家解释下上面代码中各个参数的意思:bottomright是图例位置的关键字,title是标题字符,horiz是图例内容水平排列,cex是图例整体大小,box.lty是图例边框(取0就是无框),text.font是字体(取4就是斜体)。大家可以尝试着改改上面的参数自己试试呀。
实例操练
比如我给一位同学做了个轨迹模型,这个模型本身是用plot函数输出的,默认输出的图像如下:
我此时想将这个图参照已经发表的一篇文献,改一改,大概改成下面这个样子:
我们先观察一下需要改动的地方,首先就是图的边框,之前给大家写了边框可以用bty参数改;然后是横轴的标签,这个可以用axis改,并且需要将标签改为始终水平放置(使用las参数);然后就是图例了,图例需要放在整幅图的下面,可以用legend函数改。
我们就来实操一下:运行下面代码
plot(plotpred, lty=1, lwd=5, shades=T,
xlab="Time",
ylab="PTG",
bty='l',
las=1,
cex=0.75,legend = NULL)
axis(side=1, at=c(0,0.5,1,1.5,2), labels = c('2001','2002','2003','2004','2005'))
legend("bottom",
legend = c('Low','Moderate','High'),
col = c(2,1,3),
lty=1, lwd=5,
horiz = T,
seg.len=6,
bty='n',
xpd = T,inset=-0.25)
运行上面的代码即可得到下图,效果基本上和发表的文献已经一致了,放在论文中肯定也是没问题的:
上面的代码中axis是对图形坐标轴进行重新设置,side参数的可以取4个值,side=1的意思是below,就是下面这个轴,对下面这个轴进行操作,at参数可以设置轴标签的位置,此时写了5个位置,相应地labels就是轴标签,即在at的5个位置上标签分别为2001-2005年。还有legend函数中,需要提示一下的就是xpd参数,这个参数为TRUE就表示允许在原图外进行绘制,此时就表示我在原图外,也就是原图的下方添加图例。
以上实例就是这样。
小结
今天给大家写了一些基础包中plot作图设置的基础知识点,感谢大家耐心看完,自己的文章都写的很细,重要代码都在原文中,希望大家都可以自己做一做,请转发本文到朋友圈后私信回复“数据链接”获取所有数据和本人收集的学习资料。如果对您有用请先记得收藏,再点赞分享。
也欢迎大家的意见和建议,大家想了解什么统计方法都可以在文章下留言,说不定我看见了就会给你写教程哦,有疑问欢迎私信,有合作意向请直接滴滴我。
R可视化:plot函数基础操作,小白教程的更多相关文章
- R语言 plot()函数 基础用法
plot(x=x轴数据,y=y轴数据,main="标题",sub="子标题",type="线型",xlab="x轴名称" ...
- R语言plot函数参数合集
最近用R语言画图,plot 函数是用的最多的函数,而他的参数非常繁多,由此总结一下,以供后续方便查阅. plot(x, y = NULL, type = "p", xlim = N ...
- R语言 plot()函数
语法: plot(x, y, ...) x,y分别是两个向量,x为横轴坐标,y为纵轴坐标 其他参数: type= "p" for points, 散点图 默认 "l&qu ...
- Python自学从入门到就业之函数基础(小白必看)
函数介绍 <1>什么是函数 请看如下代码: print(" _ooOoo_ ") print(" o8888888o ") print(" ...
- 记一些Python(Pymysql)建表、增删改查等基础操作(小白适用)
1.读取sql文件创建数据表 有一个形如下图的sql文件,使用python读取文件并在数据库中创建所有的表. 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道 ...
- 小白学 Python(23):Excel 基础操作(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(24):Excel 基础操作(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python 数据分析(17):Matplotlib(二)基础操作
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...
- Python 函数基础、有序集合、文件操作(三)
一.set 特点: set是一个无序且不重复的元素集合访问速度快:天生解决元素重复问题 方法: 初始化 >>> s1 = set()>>> print(type(s ...
随机推荐
- idea常见设置一
1.顶部执行栏调整 原: 设置:勾选view==>toolbar 后: 这个一看其实没有什么太大的作用,但是你看这个按钮 这个按钮就是File==>Settings,这样会稍微方便点,只要 ...
- Netty + Spring + ZooKeeper搭建轻量级RPC框架
本文参考 本篇文章主要参考自OSCHINA上的一篇"轻量级分布式 RPC 框架",因为原文对代码的注释和讲解较少,所以我打算对这篇文章的部分关键代码做出一些详细的解释 在本篇文章中 ...
- 运筹学之"概率"和"累计概率"和"谁随机数"
概率 = 2/50 = 0.2 累计概率 = 上个概率加本次概率 案例1 概率=销量天数 / 天数 = 2 /100 = 0.02 累计概率 = 上个概率加本次概率 = 0.02 +0.03 = 0. ...
- 推荐一个用于压缩图片的JS插件:localResizeIMG
惯例,先贴传送门:https://github.com/think2011/localResizeIMG 首先说到,为嘛要压缩图片,这需求一般出现在需要上传照片(尤其是移动端)的情况下,现在手机拍出来 ...
- css3中user-select的用法详解
css3中user-select的用法详解 user-select属性是css3新增的属性,用于设置用户是否能够选中文本.可用于除替换元素外的所有元素,以下是user-select的主要用法和注意事项 ...
- vue多个数据不一样的表格导出到同一张excel里面
刚来公司第二天, 甩了个需求, 把两个不同表格的数据 导出到同一个excel中 ........额,好吧 你要说,两个表格数据差不多, 直接合并数据导出就行: async function getDa ...
- jboss 7.1.1.final 报错 set the maxParameterCount attribute on the Connector
Therefore, I cannot just add the connector attribute in standalone.xml like so: 在 <JBOSS_HOME> ...
- Idea中创建maven项目(超详细)
Idea中创建maven项目 提示:前提条件时maven已经安装好,并且环境变量也配置完成,maven没安装好或者环境变量没有配置好的请参考我上一篇文章--maven的安装和配置 上篇博文链接:htt ...
- 微信小程序常用表单校验方法(手机号校验、身份证号(严格和非严格校验、验证码六位数字校验))
util.js function isPhone(value) { if (!/^1(3|4|5|7|8)\d{9}$/.test(value)) { return false } else { re ...
- MySQL安装配置教程(超级详细)
一. 下载MySQL Mysql官网下载地址:https://downloads.mysql.com/archives/installer/ 1. 选择要安装的版本,本篇文章选择的是5.7.31版本, ...