R语言作图:坐标轴设置

  要绘制一张赏心悦目的统计图表,坐标轴的设置至关重要。在R语言底层作图中,对坐标轴的调整主要通过调整plot函数、axis函数和title函数的一系列参数完成。plot(x,y,…)axis(side,at=NULL,labels=TRUE,tick=TRUE,line=NA,pos=NA,outer=FALSE,font=NA,…

大家好,又见面了,我是你们的朋友全栈君。

  要绘制一张赏心悦目的统计图表,坐标轴的设置至关重要。在R语言底层作图中,对坐标轴的调整主要通过调整plot函数、axis函数和title函数的一系列参数完成。

plot(x,y, …)

axis(side,at = NULL, labels = TRUE, tick = TRUE, line = NA,

     pos= NA, outer = FALSE, font = NA, lty = “solid”,

     lwd = 1, lwd.ticks = lwd, col = NULL,col.ticks = NULL,

     hadj = NA, padj = NA, …)

title(main= NULL, sub = NULL, xlab = NULL, ylab = NULL,

      line = NA, outer = FALSE, …)

一、plot函数的准备

  在个性化设置坐标轴之前中,通常需调整plot函数中的ann、bty、xaxt、yaxt、xaxs和yaxs参数:

  ann取FALSE时将不会画出标题(包括主、副标题及坐标轴标题);

  bty用来设置边框形式,默认值为”o”,表示四面边框都画出,其余可选值包括”l”(左下)、”7″(上右)、”c”(上下左)、”u”(左下右)、”]” (上下右)和”n”(无,即不画边框),在很多个性化绘图中,bty设为”n”,后期的边框线再使用其他函数(如axis)自行添加;

  xaxs和yaxs 用来设置x轴和y轴的范围,默认值取“r”,表示坐标轴比给定作图范围(参数xlim和ylim给出的范围)稍微大一点儿,取”i”时表示坐标轴范围与给定作图范围完全相同,另外还可取”s”、”e”、”d”;

  xaxt和yaxt 取”n”时,坐标轴、刻度线以及刻度值将不会画出。

 

x <- seq(-4, 4, 0.01)
y <- x^2
par(mfrow = c(2, 2), mar = c(4, 4, 1, 1))
plot(x, y)   # 未作处理
plot(x, y,  xaxs = "i", yaxs ="i")   # 绘图边框未留白
plot(x, y, bty = 'l')   # 只保留左和下两条边框
plot(x, y, ann = F, bty = "n", xaxt = "n", yaxt ="n")   # 边框、坐标轴都去掉

 

R语言作图:坐标轴设置

二、axis函数的用法

1、基本操作

  side表示要操作的坐标轴,取值1、2、3、4分别代表下、左、上、右;

  at表示刻度线及刻度值所在位置;

  labels表示刻度值;

  las表示坐标刻度值文字方向,las=0表示文字方向与坐标轴平行,1表示始终为水平方向,2表示与坐标轴垂直,3表示终为垂直方向。

 

x<- seq(-4, 4, 0.01)
y<- x^2
par(mfrow=c(1, 2), mar = c(4, 4, 1, 1))
#未设置文字方向
plot(x,y, ann = F, xaxt = "n", yaxt = "n")  
axis(1,-4:4, -4:4)
axis(2,seq(0, 16, 4), seq(0, 16, 4))
#文字方向水平
plot(x,y, ann = F, xaxt = "n", yaxt = "n")  
axis(1,-4:4, -4:4, las = 1)
axis(2,seq(0, 16, 4), seq(0, 16, 4), las = 1)

 

R语言作图:坐标轴设置

2、字体字号

  cex.axis表示坐标轴刻度值的字号大小,

  font.axis表示坐标轴刻度值的字体,font=1表示正体,2表示黑体,3表示斜体,4表示黑斜体。

 

x<- seq(-4, 4, 0.01)
y<- x^2
par(mfrow=c(2, 2), mar = c(4, 4, 1, 1))
#未设置字体字号
plot(x,y, ann = F, xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4)
#cex.axis = 2
plot(x,y, ann = F, xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4, cex.axis = 2)
#font.axis = 2
plot(x,y, ann = F, xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4, font.axis = 2)
#font.axis = 3
plot(x,y, ann = F, xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4, font.axis = 3)

R语言作图:坐标轴设置

 

 

 

 

3、颜色

  col表示图的颜色,用在axis函数中表示坐标轴线和坐标刻度线的颜色;

  col.axis表示坐标轴刻度值的颜色;

  col.ticks表示坐标轴刻度线的颜色。

 

x<- seq(-4, 4, 0.01)
y<- x^2
par(mfrow=c(2, 2), mar = c(4, 4, 1, 1))
#未设置颜色
plot(x,y, ann = F, bty = "n", xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4)
#col = 2
plot(x,y, ann = F, bty = "n", xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4, col = 2)
#col.axis = 2
plot(x,y, ann = F, bty = "n", xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4, col.axis = 2)
#col.ticks = 2
plot(x,y, ann = F, bty = "n", xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4, col.ticks = 2)

R语言作图:坐标轴设置

 

4、位置

  line表示坐标轴线位置与图像边框的距离,取负数时会画在图像边框以内;

  mgp默认值为c(3, 1, 0),三个数字分别代表坐标轴标题、刻度值和轴线与绘图边框的距离;

  tcl默认值为-0.5,数值表示刻度线长度,负值表示刻度线朝外,正值朝里;

  pos 表示轴线所在的位置;

  line.outer取TRUE时,坐标轴将画在画布边缘处;

  hadj指将刻度值沿平行坐标轴方向调整的距离;

  padj指将刻度值沿垂直坐标轴方向调整的距离。

 

x <- seq(-4, 4, 0.01)
y <- x^2
par(mfrow= c(2, 2), mar = c(4, 4, 1, 1))
# 未设置刻度值位置
plot(x, y, ann = F, xaxt = "n", yaxt ="n")
axis(1, -4:4, -4:4)
# 使用line调整刻度值位置
plot(x, y, ann = F, xaxt = "n", yaxt ="n")
axis(1, -4:4, -4:4, line = 2)
# 使用mgp调整刻度值位置
plot(x, y, ann = F, xaxt = "n", yaxt ="n")
axis(1, -4:4, -4:4, mgp = c(3, 2, 0)) 
# 使用padj调整刻度值位置
plot(x, y, ann = F, xaxt = "n", yaxt ="n")
axis(1, -4:4, -4:4, padj = 1)

R语言作图:坐标轴设置

 

 

 

5、其他

  tick取FALSE时,坐标轴线和刻度线不画出;

  lty表示线型,用在axis函数中表示坐标轴线型;

  lwd表示线的粗细,用在axis函数中表示坐标轴线粗细;

  lwd.ticks表示刻度线粗细。

 

三、title函数的用法

  main、sub、xlab和ylab分别表示主标题、副标题、x轴标题和y轴标题;

  cex.lab表示坐标轴标题的字号大小;

  font.lab表示坐标轴标题的字体;

  col.lab表示坐标轴标题的颜色;

  其余参数和axis中用法一致。

 

x<- seq(-4, 4, 0.01)
y<- x^2
par(mfrow=c(2, 2), mar = c(4, 4, 1, 1))
#无标题
plot(x,y, ann = F, xaxt = "n", yaxt = "n")  
axis(1,-4:4, -4:4)
axis(2,seq(0, 16, 4), seq(0, 16, 4))
#使用title设置标题
plot(x,y, ann = F, xaxt = "n", yaxt = "n")  
axis(1,-4:4, -4:4, las = 1)
axis(2,seq(0, 16, 4), seq(0, 16, 4), las = 1)
title(xlab= 'x', ylab = 'y')
#使用line调整位置
plot(x,y, ann = F, xaxt = "n", yaxt = "n")  
axis(1,-4:4, -4:4, las = 1)
axis(2,seq(0, 16, 4), seq(0, 16, 4), las = 1)
title(xlab= 'x', ylab = 'y', line = 2)
#调整颜色字体字号
plot(x,y, ann = F, xaxt = "n", yaxt = "n")  
axis(1,-4:4, -4:4, las = 1)
axis(2,seq(0, 16, 4), seq(0, 16, 4), las = 1)
title(xlab= 'x', ylab = 'y', col.lab = 2, font.lab = 4, cex.lab = 2)

R语言作图:坐标轴设置

四、刻度间隔

  plot函数会自动给出比较合理的刻度间隔,本质上是调用了pretty函数。

  pretty(x, n = 5, min.n = n %/% 3,  shrink.sml = 0.75,
         high.u.bias = 1.5, u5.bias = .5 + 1.5*high.u.bias,
         eps.correct = 0, …)

  x是一个序列,pretty函数会先对x取一个range,然后等分为大约n+1个间隔。如果在作图时对系统自动给出的间隔不满意,可以调整n的值,用pretty函数自定义合适的间隔。

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126792.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Calendar类_介绍类节目

    Calendar类_介绍类节目Calendar类的介绍Calendar类属于java.util.CanlendarCalendar类是一个抽象类,里面提供了很多操作日历字段的方法Calendar类无法直接创建对象使用,因为Calendar类是一个抽象类,但是里面有一个静态方法叫getInstance(),这个方法的作用是返回一个Calendar的子类对象staticCalendargetInstance使用默认时区和环境获得一个日历注意:月份总共0-11月publicstaticvoidmain(String[

    2022年9月23日
    3
  • mysql的反引号怎么打出来_sql注入绕过单引号

    mysql的反引号怎么打出来_sql注入绕过单引号反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select*from`users`whereuser_id=1limit0,1;可以正常执行的,这样使用还可以起到分隔符的作用,如下eg:select*from`users`whereuse…

    2025年6月30日
    3
  • potplayer_常用配置(窗口/快捷键/播放列表/)

    potplayer_常用配置(窗口/快捷键/播放列表/)文章目录播放窗口配置默认最大化/全屏窗口播放列表(专辑)打开/关闭播放列表菜单新建专辑(播放列表)为专辑添加音视频文件(比如文件夹)快捷键屏蔽(废弃)默认快捷键添加快捷键修改自定自定义的快捷键相关配置需要点击确定来使得配置生效,后面不再反复提及????有一个搜索框,可以搜索关键词碰碰运气(往往不如直接搜索引擎找方案)播放窗口点击起始配置默认最大化/全屏窗口播放列表(专辑)打开/关闭播放列表菜单或者也可以通过右键,点击列表新建专辑(播放列表)为专辑添加音视频文件(比如文件

    2022年5月21日
    122
  • Python语言培训_python文件是怎么打开

    Python语言培训_python文件是怎么打开述(最多18字以下试题内容来源由-众课帮-公众号和小程序提供可查询更多的试题答案新鲜尿液有氨臭味变异性心绞痛患者首选药物是A_______ofdependenceonGMOseedsandchemicalfertilizers,pesticides(杀虫剂),andherbicides(除草剂)isthencreatedinordertogrowasinglecrop.如果要对事物发展变化的未来趋势做出描述,例如对五年后技术变革方向进行预测,通常采..

    2025年8月29日
    8
  • java执行curl命令带json(执行shell脚本命令)

    需要注意的是,命令需要以数组的形式传递参数,就是把正常的命令以空格切分成数组就行了。而且参数前后不能有空格,不然会报错。具体的测试代码如下:importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;publicclassTestCurl{p…

    2022年4月16日
    243
  • python for跳过下一个循环_python循环三次跳出循环

    python for跳过下一个循环_python循环三次跳出循环python中如何退出for循环Python中的for循环与其它语言不大一样,但跳出循环还是与大多数语言一样,可以使用关键字continue跳出本次循环或者break跳出整个for循环。break语句:Python中的break语句,就像在C语言中,打破了最小封闭for或while循环。break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。br…

    2022年8月12日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号