在R语言中绘制坐标轴时,如何将坐标轴的刻度画在图内呢?
下面有一个完整的例子:
#画图测试
aixs.test<-function(){
x<-rnorm(7)
#print(x)
y<-round(c(1:5)*(max(x)-min(x))/5+min(x),digits=2)
xx<-round(c(1:5)*length(x)/5,digits=2)
#print(y)
opar<-par(no.readonly=TRUE)
par(mar=c(5,4,4,8)+0.1)
plot(x, type="b", pch=21, col="red", xaxt="n",yaxt="n", lty=3, ann=FALSE)
axis(1, at=xx, labels=xx, col.axis="black", las=0, tck=0.03)
axis(2, at=y, labels=y, col.axis="black", las=2, tck=0.03)
title("An Example of Creative Axes", xlab="X values", ylab="Y values")
par(opar)
}
aixs.test();
这里说明如下:
(1)x为要绘制的数据,这里为一正态分布函数产生。
(2)y 为绘制y轴分刻度用,主要是将绘图区均匀分为5个刻度。
(3)xx为绘制xx轴的刻度,也是设置绘制5个均匀刻度。
(4)xaxt="n",yaxt="n"表示不绘制x轴或y轴。
(5)las表示坐标轴标签平行于坐标轴还是垂直于坐标轴,0-平行;2-垂直
(6)tck坐标轴刻度长度,正数为在图内侧画,负数为在外侧画。
(7)axis()为绘制坐标轴的函数。
(8)title()用来设置设置标题,y轴和x轴的标签。xlab,ylab分别为x,y轴标签。
(9)par()用来修改图形参数:
par(mar=c(5,4,4,8)+0.1)
生效后直至会话结束,为了防止图形设置对其他绘图的影响,先使用opar变量保存该设置,在运行结束后恢复
opar<-par(no.readonly=TRUE)
par(opar)
(10)ann参数表示高级绘图函数已经包含的默认的标题和标签,可以用ann=FALSE取消默认的标题和标签。
最终效果为: