R语言修改坐标轴

使用R语言作图时,修改坐标轴主要通过调整plot函数、axis函数和title函数中的参数。

plot函数

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, ...)

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

序号 参数 操作
1 ann 取FALSE时将不会画出标题(包括主、副标题及坐标轴标题)。
2 bty 设置边框形式,默认值为"o",表示四面边框都画出。
其余可选值包括"l"(左下)、“7”(上右)、“c”(上下左)、“u”(左下右)、"]" (上下右)和"n"(无,即不画边框)。
在很多个性化绘图中,bty设为"n",后期的边框线再使用其他函数(如axis)自行添加。
3 xaxs/yaxs 设置x轴和y轴的范围,默认值为“r”,表示坐标轴比给定作图范围,比参数xlim和ylim给出的范围大一些。
赋值为”i”时表示坐标轴范围与给定作图范围完全相同。
其他取值包括”s”、”e”、”d”等。
4 xaxt/yaxt 取”n”时,坐标轴、刻度线以及刻度值将不会画出。

y = x 3 y=x^3 y=x3 为例作图:

x <- seq(-4, 4, 0.01)
y <- x ^ 3
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语言修改坐标轴_第1张图片

axis函数

序号 参数 操作
1 side 表示要操作的坐标轴,取值1、2、3、4分别代表下、左、上、右。
2 at 表示刻度线及刻度值所在位置。
3 labels 表示刻度值。
4 las 表示坐标刻度值文字方向,值为0表示文字方向与坐标轴平行,1表示始终为水平方向,2表示与坐标轴垂直,3表示终为垂直方向。
x <- seq(-4, 4, 0.01)
y <- x ^ 3
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(-64, 64, 4), seq(-64, 64, 4))
#文字方向水平
plot(x, y, ann = F, xaxt = "n", yaxt = "n")  
axis(1, -4 : 4, -4 : 4, las = 1)
axis(2, seq(-64, 64, 4), seq(-64, 64, 4), las = 1)

R语言修改坐标轴_第2张图片

字体字号

序号 参数 操作
1 cex.axis 表示坐标轴刻度值的字号大小。
2 font.axis 表示坐标轴刻度值的字体,font = 1表示正体,2表示黑体,3表示斜体,4表示黑斜体。
x <- seq(-4, 4, 0.01)
y <- x ^ 3
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张图片

颜色

序号 参数 操作
1 col 表示图的颜色,用在axis函数中表示坐标轴线和坐标刻度线的颜色。
2 col.axis 表示坐标轴刻度值的颜色。
3 col.ticks 表示坐标轴刻度线的颜色。
x <- seq(-4, 4, 0.01)
y <- x ^ 3
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张图片

位置

序号 参数 操作
1 line 表示坐标轴线位置与图像边框的距离,取负数时会画在图像边框以内。
2 mgp 默认值为c(3, 1, 0),三个数字分别代表坐标轴标题、刻度值和轴线与绘图边框的距离。
3 tcl 默认值为-0.5,数值表示刻度线长度,负值表示刻度线朝外,正值朝里。
4 pos 表示轴线所在的位置。
5 line.outer 值为TRUE时,坐标轴将画在画布边缘处。
6 hadj 指将刻度值沿平行坐标轴方向调整的距离。
7 padj 指将刻度值沿垂直坐标轴方向调整的距离。
x <- seq(-4, 4, 0.01)
y <- x ^ 3
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张图片

标题

title函数的用法

序号 参数 操作
1 main 主标题
2 sub 副标题
3 xlab x轴标题
4 ylab y轴标题
5 cex.lab 表示坐标轴标题的字号大小
6 font.lab 表示坐标轴标题的字体
7 col.lab 表示坐标轴标题的颜色
8 其余参数 和axis中用法一致
x <- seq(-4, 4, 0.01)
y <- x ^ 3
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(-64, 64, 4), seq(-64, 64, 4))
#使用title设置标题
plot(x, y, ann = F, xaxt = "n", yaxt = "n")  
axis(1, -4 : 4, -4 : 4, las = 1)
axis(2, seq(-64, 64, 4), seq(-64, 64, 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(-64, 64, 4), seq(-64, 64, 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(-64, 64, 4), seq(-64, 64, 4), las = 1)
title(xlab= 'x', ylab = 'y', col.lab = 2, font.lab = 4, cex.lab = 2)

R语言修改坐标轴_第6张图片
欢迎大家批评指正。

你可能感兴趣的:(R)