R语言-坐标轴画法要旨

时间:2022-06-17 18:28:57

在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取消默认的标题和标签。


最终效果为:

R语言-坐标轴画法要旨