在R语言中,怎么调节坐标刻度数字与坐标轴的距离

Python030

在R语言中,怎么调节坐标刻度数字与坐标轴的距离,第1张

许多R 的高级图形自身就含有坐标轴,此外你可以用低级图形函数axis() 设置你自己的坐标轴。坐标轴主要包括三个部分:轴线(axis line)(线条格式由图形参数lty控制),刻度(tick mark)(划分轴线上的刻度) 和刻度标记(tick label)(标记刻度上的单位)。这些部分可以通过下面的图形参数设置。lab=c(5, 7, 12) 前两个参数分别是x 和y 轴期望的刻度间隔数目。第三个参数刻度标记的字符长度(包括小数点)。这个参数设的太小会导致所有的标记变成一样的数字。las=1 刻度标记的方向。0 表示总是平行于坐标轴,1 表示总是水平,以及2 表示总是垂直于坐标轴。mgp=c(3, 1, 0) 三个坐标成分的位置。第一个参数是轴标签相对轴位置的距离,以文本行作为参照单位的。第二个参数表示刻度标记的距离,最后一个参数是轴位置到轴线的距离(常常是0)。正值表示在图形外,负值表示在图形内。tck=0.01 刻度的长度,以画图区域大小的比率作为度量。当tck 比较小(小于0.5),x 和y 轴上的刻度强制大小一致。值为1时,给出网格线。负值时刻度在图形外。tck=0.01 和mgp=c(1,-1.5,0)表示内部刻度。xaxs="r"yaxs="i" 分别设定x 和y 轴的形式。"i" (内在的) 和"r" (默认) 形式的刻度都适合数据的范围,但是"r" 形式的刻度会在刻度范围两边留一些空隙(S 还有一些在R 里面没有实现的刻度形式)。

par()函数是R里有关绘图的重要函数之一,以下是对par()函数说明内容的一些整理。描述:par函数用于设定或询问绘图参数。参数设定可通过par(参数名=取值)或par(赋值参数列表)的形式进行。用法:par(,no.readonly=FALSE)函数变量:“参数名=取值”或“赋值参数列表”形式的变量。no.readonly逻辑变量。如=TRUE且没有其他变量,则返回当前绘图设备下已设定好的绘图参数。参数:参数分为三类:一、仅仅用于询问不能被设定的参数:cin,cra,csi,cxy,dim。二、仅能通过par()设定参数:ask,fig,fin,lheight,mai,mar,mex,mfcol,mfrow,mfg,new,oma,omd,omi,pin,plt,ps,pty,usr,xlog,ylog。三、除了par(),也能在其他高级绘图函数中设定的参数。应用中,涉及这三类参数最多的是第三类,最少的是第一类。查看当前参数的赋值用par("参数名")第三类参数:adj调整函数text,mtext,title里文本串的位置。=0:文本串左对齐;=0.5(缺省):文本串居中;=1:文本串右对齐。ann=FALSE:不进行绘图解释标记(例如横轴标题等)。bg设置绘图区背景色。缺省为bg="transparent"。bty设置绘图边框的形式。="o"(缺省):四周边框;="l":左下边框;="7":右上边框;="c":上左下边框;="u":左下右边框;="]":上右下边框;="n";无边框。cex设置文本和符合的尺度。缺省为cex=1。cex.axis相对于当前的cex设置,放大坐标标记(坐标轴标记的数字)。缺省为cex.axis=1。cex.lab相对于当前的cex设置,放大坐标轴标题。缺省为cex.lab=1。cex.main相对于当前的cex设置,放大图标题。缺省为cex.main=1。cex.sub相对于当前的cex设置,放大图副标题。缺省为cex.sub=1。col设置绘图颜色。缺省为col="black"。col.axis设置坐标标记颜色。缺省为col.axis="black"。col.lab设置坐标轴标题颜色。缺省为col.lab="black"。col.main设置图标题颜色。缺省为col.main="black"。col.sub设置图副标题颜色。缺省为col.sub="black"。crt缺省为crt=0。err期望的错误报告程度(像该参数目前在R中未生效)。缺省为err=0。family设置文本字体字体族。缺省为family=""。fg设置前景色,主要用于坐标轴,边框,图形等,对坐标标记与坐标轴标题等外围无影响。缺省为fg="black"。font设置文本字体。=1(缺省):普通字体;=2:粗体;=3:斜体;=4:粗斜体;。font.axis设置坐标标记字体。font.lab设置坐标轴标题字体。font.main设置图标题字体。font.sub设置图副标题字体。lab设置坐标轴刻度数,lab=c(x,y,len)形式,目前len的设置在R中未生效。缺省为lab=c(5,5,7)。las设置坐标标记显示方向。=0(缺省):平行于坐标轴;=1:平行于x轴;=2:垂直于坐标轴;=3:平行于y轴。lend设置线结束端的形状(只有把线画很粗才能看出来)。=0(缺省):圆形;=1:“短”方形;=2:“长”方形。ljoin设置线交接处的性质(只有把线画很粗才能看出来)。=0(缺省):圆角;=1:方角;=2:切方角顶角。lmitre设置ljoin里方角向切方角顶角过渡的程度。缺省为lmitre=10。lty设置线的类型。=0:空白;=1:(缺省)实线;=2:短线虚线;=3:点虚线;=4:短线点虚线;=5:长线虚线;=6:长短线虚线。lwd设置线宽。缺省为lwd=1。mgp设置坐标轴标题,坐标标记和坐标轴边界宽度。mgp[1]影响坐标轴标题,mgp[2,3]影响坐标标记和坐标轴。缺省为mgp=c(3,1,0)。pch设置点的类型。缺省为pch=1。srt逆时针选择字符串,单位为°,只用于text函数。缺省srt=0。tck设置坐标刻度线长与方向(与图宽和高的较小者成比例)。缺省为tck="NA"。tcl设置坐标刻度线长与方向(与文本行高成比例)。缺省为tcl=-0.5。xaxs,yaxs设置坐标轴的范围。="r"(缺省):先将数据范围向双边扩大4%,然后绘图;="i":在原始数据范围内绘图。xaxt,yaxt设置坐标轴样式。="s"(缺省):标准样式;="n":不绘坐标轴。第二类函数:ask=TRUE:在新图绘制前进行提示。fig设定图在绘图设备中的位置,fig=c(x1,x2,y1,y2)的数值向量(0<=x1

接着上一篇文章 R语言:表格的线图转化 继续练习,这次是直方图。

前段时间在视频课程学习过直方图案例,有一个citysales表格,表示3种产品,在5个城市的销量。

运用的是“barplot”命令,程序如下:

citysales<-read.csv("citysales.csv")

x<-barplot(as.matrix(citysales[,2:4]),beside=TRUE,

legend.text=citysales$City,args.legend=list(bty="n",horiz=TRUE),

col=brewer.pal(5,"Set1"),border="black",ylim=c(0,100))

自己用来练习的表格,还是上次那个。

因为这次想用案例中的色库,所以安装了“RColorBrewer”包。

然后按照案例中语句,写了一下。颜色参数有一点改动。

barplot(as.matrix(mydata[,2:3]),las=2,beside=TRUE,col=brewer.pal(2,"Set2"))

噫,为什么2006一列,2016一列?看回案例,barplot命令是根据列分组的,所以这里也根据了两个年份分组。

这样的图形不是我想要的,所以用 t命令 把mydata的行列互相置换了一下。

b<-as.matrix(mydata[,2:3]) c<-t(b)

barplot(c,las=2,beside=TRUE,col=brewer.pal(2,"Set2"))

这次出现的图形就对了,但是x轴的图标不对。区域名消失了。

很奇怪的是,如果整个mydata置换,就会把整个matrix都变成字符,barplot就不能只打印其中的两列,必须置换成数值

图形跟上图一样,就是没有x轴的数字了。

如果索性在excel表里手动置换行和列,也是可以的。

barplot(as.matrix(mydata2[,2:16]),las=2,beside=TRUE,col=brewer.pal(2,"Set2"),ylim=c(0,95000))

如果去掉“beside=TRUE”语句,则形成层叠图。再加上增长幅度曲线rate。但是因为增长幅度数值相对于几万的房价比较小,所以乘以5000倍才能看得见。

lines(mydata$rate*5000,col="gold")

这里又出现了一个缺点,涨幅曲线和柱状图差了一个,当然在excel表是完全对应的。还没有找出原因。望各位大神指教。

这次的练习:

1.条形图的转化

2.两种图形的叠加

3.RColorBrew包及相关命令

不明白/没做出来的地方

1.用barplot打印matrix的格式

2.matrix怎么加表头

3.Line和条形图的对应