r语言双坐标轴画图如何坐标表示一个点

R语言绘图001-基础参数
ann:如果ann=FALSE,那么高水平绘图函数会调用函数plot.default使对坐标轴名称、整体图像名称不做任何注解。默认值为TRUE。
plot(1:4,ann=FALSE,main='plot(1:4,ann=FALSE)')#尽管指定了参数main的值,但是图像中仍然没有显示
plot(1:4,ann=TRUE,main='plot(1:4,ann=FALSE)')
#添加标题为plot(1:4,ann=FALSE)
ask,逻辑值,若为TRUE(且当前的R会话是可交互状态),则在绘制新图像之前会要求用户输入确认信息。同样的,会对扩展包grid和lattice的输出有影响,甚至可能会应用到没有屏幕输出的设备上(但可能会没有效果)。
axis(side,
vect)画坐标轴,side=1时画在下边,side=2时画在左边,side=3时画在上边,side=4时画在右边。可选参数at指定画刻度线的位置坐标。
arrows(x0, y0,x1, y1, angle=
30,code=2)同上但加画箭头,如果code=2则在各(x0,y0)处画箭头,如
果code=1则在各(x1,y1)处画箭头,如果code=3则在两端都画箭头;
angle控制箭头轴到箭头边的角度
abline(a,b)绘制斜率为b和截距为a的直线,abline(h=y)在纵坐标y处画水平线,abline(v=x)在横坐标x处画垂直线,abline(lm.obj)画由lm.obj确定的回归线。
adj该参数值用于设定在text、mtext、title中字符串的对齐方向。0表示左对齐,0.5(默认值)表示居中,而1表示右对齐(说明一下,区间[0,1]内的任何值都可以作为参数adj的有效值,并且在大部分的图形设备中,介于区间外的值也是有效的)。
函数text中的参数adj的值可以以类似于形式adj=c(x,y)调整图中字符的相对位置;取值:长度为2的数值向量,分别表示字符边界矩形框的左下角相对坐标点(x,
y)位置的调整,向量的两个数值一般都在[0;
1]范围中(有些图形设备中也可以超出此范围),表示字符串以左下角为基准、根据自身的宽度和高度分别向左和向下移动的比例,默认为c(0.5,
0.5)。例如c(0, 0)表示整个字符(串)的左下角对准设定的坐标点,而c(1,
0)则表示字符串横向移动了自身宽度的距离,而纵向不受影响。但是在text中该参数的值影响的是对点的标记,对函数mtext和title来说,参数adj的值影响的是整个图像或设备区域。取负值时对齐位置在文本左边的地方;如果给出两个值(例如c(0,
0)),第二个只控制关于文字基线的垂直调整
是否画坐标轴;注意只会影响到是否画出坐标轴线和刻度,不会影响坐标轴标题
图形纵横比y=x;通常情况下这个比率不是1,有些情况下需要设置以显示更好的图形效果,例如需要从角度表现直线的斜率:若asp不等于1,那么45_
的角可能看起来并不像真实的45_然后我们看看默认的散点图函数plot.default()。对于一般的散点图(两个数值变量之间),我们只需要调用plot()即可,如plot(x,
y),而不必写明plot.default(x,
y),原因就是plot()是泛型函数,它会自动判断传给它的数据类型从而采取不同的作图方式。plot.default()的参数当然包含了前面介绍的plot()中那些参数,此外还有:x,
y 欲作散点图的两个向量;如果y缺失,那么就用x对它的元素位置(1:n的整数)作散点图,lim, ylim
设置坐标系的界限,两个参数都取长度为2的向量,它们的作用类似par()中的usr参数6
bg用于设定绘图区域的背景颜色。当通过函数par()调用时,会同时设定参数new=FALSE。对很多设备来说,该参数的初始值就是该设备的背景颜色值,其他情况下一般为"white"。需要注意一点的是,一些图形函数例如plot.default和points等也有名为bg的参数,但是代表的含义是不同的。这里设置的只是可以画背景色的点的背景色,而不是设置整幅图形的背景色,bg指定背景色(例如bg="red",
bg="blue"; 用colors()可以显示657种可用的颜 色名)
bty控制图形边框形状,可用的值为: "o", "l", "7", "c", "u"
和"]" (边框和字符
的外表相像);这些字符本身的形状对应着边框样式,比如(默认值)o表示四条边都显示,而c表示不显示右侧边如果bty="n"则不绘制边框
box()在当前的图上加上边框
cex控制缺省状态下符号和文字大小的值,用于表示对默认的绘图文本和符号放大多少倍。需要注意一些绘图函数如plot.default等也有一个相同名字的参数,但是此时表示在函数par()的参数cex的基础上再放大多少倍,此外还有函数points等接受一个数值向量为参数。默认值为1,如果设为1.5,则表示比默认大小大50%,若设为0.5,则表示比默认值小50%。
cex.axis 坐标轴刻度标记的缩放倍数
cex.lab 坐标轴标题的缩放倍数
cex.main 图主标题的缩放倍数
cex.sub 图副标题的缩放倍数
图中符号(点、线等)的颜色,与cex参数类似,具体的细节颜色也可以通过如下参数设置:
col.axis 坐标轴刻度标记的颜色
col.lab 坐标轴标题的颜色
col.main 图主标题的颜色
col.sub 图副标题的颜色
cin,这是一个只读参数,不能进行修改。以形式(width,height)返回字体大小,单位为英寸。这和参数cra的作用一样,只是测量单位不同。
col,用于设定默认的绘图颜色
col.axis。
坐标轴刻度值的颜色,默认为"black"。如代码:
par(cex.axis=3,col.axis="red")
& plot(1:4)
col.lab,坐标轴名称的颜色,默认为"black"。
col.main,主标题的颜色,默认为"black"。
col.sub,子标题的颜色,默认为"black"。
cra,参见参数cin的说明。
crt,该参数的值为一个表示度数的数值,用于表示单个字符的旋转度数,最好为90的倍数。和参数srt的不同之处在于后者是对整个字符串进行旋转。
csi,只读参数,返回默认的字符高度,以英寸为单位。
cxy,只读参数,以形式(width,height)返回默认的字符宽度、高度,
其中par("cxy") = par("cin") /
par("pin")。
设置前景色(若后面没有指定别的颜色设置,本参数会影响几乎所有的后续图形元素颜色,若后续图形元素有指定的颜色设置,那么只是影响图形边框和坐标轴刻度线的颜色)
font控制文字字体的整数(1: 正常,2: 斜体,3: 粗体,4:
粗斜体);和cex类似, 还可用: font.axis, font.lab, font.main,
font.sub。
font.axis 坐标轴刻度标签的字体样式
font.lab 坐标轴标题的字体样式
font.main 图主标题的字体样式
font.sub 图副标题的字体样式
frame.plot
是否给图形加框;可以查阅box()函数,作用类似但功能更详细
设置文本的字体族(衬线、无衬线、等宽、符号字体等);标准取值有:serif, sans, mono,
symbol,参见图3.2坐标(2, 8)处的文本;family = 'symbol'的情况没有显示出来
legend():除了利用x,y设置图例的坐标外,用”topleft”,
"center","bottomright"等设置位置非常方便。ncol设置图例的列数,
horiz设置图例的排列方向。
lab 设置坐标轴刻度数目(R会尽量自动“取整”2);取值形式c(x,
y,len):x和y分别设置两轴的刻度数目,len目前在R中尚未生效,因此设置任意值都不会有影响(但用到lab参数时必须写上这个参数)1对于添加文本,text()函数及其vfont参数可以设置更为详细的字体族和字体样式
坐标轴标签样式;取0、1、2、3四个整数之一,分别表示“总是平行于坐标轴”、“总是水平”、“总是垂直于坐标轴”和“总是竖直”。仔细观察图3.2中四幅图的不同坐标轴标签方向
线条末端的样式(圆或方形);取值为整数0、1、2之一(或相应的字符串'round', 'mitre',
'bevel'),注意后两者的细微区别3
lheight 图中文本行高;取值为一个倍数,默认为1
线条相交处的样式;取值为整数0、1、2之一(或相应的字符串'round','mitre',
'bevel'),分别表示画圆角、画方角和切掉顶角,观察图3.1的三个直角的顶点
log 坐标是否取对数,TRUE或者FALSE
lty lty控制连线的线型,可以是整数(1: 实线,2: 虚线,3: 点线,4:
点虚线,5: 长虚线,6:
双虚线),或者是不超过8个字符的字符串(字符为从"0"到"9"之间的数字)交替地指定线和空白的长度,单位为磅(points)或象素,例如lty="44"和lty=2效果相同。线条虚实样式:0
)不画线,1 )实线,2 )虚线,3 )点线,4 )点划线,5 )长划线,6
)点长划线;或者相应设置如下字符串(分别对应前面的数字):'blank', 'solid', 'dashed', 'dotted',
'dot dash', 'longdash', 'twodash';还可以用由十六进制的数字组成
的字符串表示线上实线和空白的相应长度,如'F624'
locator(n, type=”n”,
…)在用户用鼠标在图上点击n次后返回n次点击的坐标(x,
y);并可以在点击处绘制符号(type=”p”时)或连线(type=”l”时),缺省情 况下不画符号或连线
las,只能是0,1,2,3中的某一个值,用于表示刻度值的方向。0表示总是平行于坐标轴;1表示总是水平方向;2表示总是垂直于坐标轴;3表示总是垂直方向。
lend,线段的端点样式,参数值可以为一个整数或者一个字符串。参数值为0或者"round"时,表示端点样式为圆角(默认值);为1或者"butt"时,表示端点直接截断;为2或者"square"表示延伸末端。如代码:
plot(1:8,type="n",ylim=c(1,6))
& x0&-c(1,2,3,5,6)
& y0&-rep(1,5)
& y1&-rep(6,5)
& segments(x0,y0,x1,y1)
& x0&-rep(0,4)
& y0&-seq(1.3,4.3,1)
& x1&-c(1,6,3,1)
segments(x0,y0,x1,y0,lwd=10,col="red")
#修改参数lend=1
& y0&-seq(1.6,4.6,1)
segments(x0,y0,x1,y0,lwd=10,col="green",lend=1)
#修改参数lend=2
& y0&-seq(1.9,4.9,1)
& x1&-c(2,8,5,3)
segments(x0,y0,x1,y0,lwd=10,col="blue",lend=2)
lty,直线类型。参数的值可以为整数(0为空,1为实线(默认值),2为虚线,3为点线,还可以为4、5、6等),也可以为字符串(和整数是一一对应的,如"blank"、"solid"、"dashed"、"dotted"、"dotdash"、"longdash"或者
"twodash")。
lwd,线条宽度。必须为一个整数,默认值为1。具体的实现根据设备而定,有一些绘图设备不支持线条宽度小于1。
代码示例:
plot(0:6,type='n')
for(i in c(0:6)){abline(h = i,
lty=i,lwd=i)}
main 主标题;也可以在作图之后用函数title()添加上
mar控制图形边空的有4个值的向量c(bottom, left, top,
right), 缺省值 为c(5.1, 4.1, 4.1, 2.1)
设置坐标轴的边界宽度缩放倍数;默认为1,本参数会影响到mgp参数
mfrow, mfcol 设置一页多图;取值形式c(nrow,
ncol)长度为2的向量,分别设置行数和列数,分割绘图窗口为nr行nc列的矩阵布局,按列次序使用各子窗口
设置坐标轴的边界宽度;取值长度为3的数值向量,分别表示坐标轴标题、坐标轴刻度线标签和坐标轴线的边界宽度(受mex的影响),默认为c(3,
1, 0),意思是坐标轴标题、坐标轴刻度线标签和坐标轴线离作图区域的距离分别为3、1、0;参见图3.1右上方小图
mtext():为四个坐标轴添加标签。mtext(text,side=3,
line=0,…)在边空添加用text指定的文字,用side指定添加到哪一边(参照
下面的axis());line指定添加的文字距离绘图区域的行数
mfcol,mrow,用于设定图像设备的布局(简单的说就是将当前的绘图设备分隔成了nr*nc个子设备),参数形式为c(nr,
nc)。子图的绘图顺序是按列还是按行就分别根据是参数指定的是mfcol还是mfrow。想要实现相同的功能还可以利用函数layout或者split.screen。
new,逻辑值,默认值为FALSE。如果设定为TRUE,那么下一个高级绘图命令并不会清空当前绘图设备。
oma 设置外边界(Outer Margin)宽度;类似mar,默认为c(0, 0,
0,0),当一页上只放一张图时,该参数与mar不好区分,但在一页多图的情况下就容易可以看出与mar的区别3仔细观察图3.2中宽线条中黑点的位置,在画线时,这些线条的起点和终点(分别用图中的两个黑点表示)都是选择同样的坐标位置!
omi,和参数oma的作用一样,只是这次参数的单位为英寸。
pch 点的符号;pch = 19)实圆点、pch = 20)小实圆点、pch =
21)圆圈、pch = 22)正方形、pch = 23)菱形、pch = 24)正三角尖、pch=
25)倒三角尖,其中,21-25可以填充颜色(用bg参数)
plot():最简单的画图函数。type设置画图的类型(type=”n”表示不画数据),九种可能的取值,分别代表不同的样式:'p')画点;'l')画线5;'b')同时画点和线,但点线不相交;'c')将type=
'b'中的点去掉,只剩下相应的线条部分;'o')同时画点和线,且相互重叠,这是它与type =
'b'的区别;'h')画铅垂线;'s')
画阶梯线,从一点到下一点时,先画水平线,再画垂直线;'S')也是画阶梯线,但从一点到下一点是先画垂直线,再画水平线;'n')作一幅空图,没有任何内容,但坐标轴、标题等其它元素都照样显示(除非用别的设置特意隐藏了)。
points():pch设置点的类型。
设置作图区域的形状;默认为'm':尽可能最大化作图区域;另外一种取值's'表示设置作图区域为正方形
panel.first
在作图前要完成的工作;这个参数常常被用来在作图之前添加背景网格(参见4.5节)或者添加散点的平滑曲线,比如panel.first=
ps控制文字大小的整数,单位为磅(points)
polygon(x, y)绘制连接各x,y坐标确定的点的多边形
pin,当前的维度,形式为c(width,height),单位为英寸。
plt,形式为 c(x1, x2, y1,
y2),设定当前的绘图区域。
pty,一个字符型参数,表示当前绘图区域的形状,"s"表示生成一个正方形区域,而"m"表示生成最大的绘图区域。
rect(x1, y1, x2, y2)绘制长方形,(x1,
y1)为左下角,(x2,y2)为右上角
rug(x)在x-轴上用短线画出x数据的位置
srt 字符串的旋转角度;取一个角度数值,参见图3.1左下方小图中分别旋转30
_和120 _的字符串
sub 副标题
segments(x0, y0,x1,
y1)从(x0,y0)各点到(x1,y1)各点画线段
srt,字符串旋转度数,只支持函数text。
指定轴上刻度长度的值,单位是百分比,取值为与图形宽高的比例值(0到1之间)以图形宽、高中最小一个作为基数;
如果tck=1则绘制grid坐标轴刻度线的高度;正值表示向内画刻度线,负值表示向外;默认为不使用它(设为NA}),而使用tcl参数
坐标轴刻度线的高度;取一个与文本行高的比例值;正负值意义类似tck,默认值为-0.5,即向外画线,高度为半行文本高;观察图3.1左下角小图的坐标轴刻度线
text():在给定坐标的位置写字。text(x, y,
labels,…)在(x,y)处添加用labels指定的文字;典型的用法是: plot(x, y, type=”n”);
text(x, y, names)
tck,刻度线的长度,为一个小于等于的小数,表示绘图区域的高度或宽度的一部分(取高度或宽度中较小的值)。如果tck=1,则表示绘制网格线。默认值为NA(相当于tcl=-0.5)。
title()添加标题,也可添加一个副标题
usr 作图区域的范围限制,取值长度为4的数值向量c(x1, x2, y1,
y2),分别表示作图区域内x轴的左右极限和y轴的下上极限;注意,如果采用的对数刻度(如par("xlog")=TRUE),那么x坐标轴的表示范围为10^par("usr")[1:2],同样也可以得到y坐标轴的表示范围。
xaxp,一个形式为c(x1, x2,
n)的向量,表示当par("xlog")=false时,x坐标轴的刻度线的区间及区间中的刻度线个数。若par("xlog")=TRUE,情形就稍微复杂了:若取值范围较小,那么n是一个负数,且刻度线的分布和正常情形(没有对数转换)下相似;若n取值为1、2、3中的一个,c(x1,x2)=10^par("usr")[1:2](并且此时par("usr")是指par("xlog")=TRUE情况下返回的值)。具体解释如下:
n=1,在坐标值为10^j(j为整数)处绘制刻度线。
n=2,在坐标值为k*(10^j)处绘制刻度线,其中k为1或者5。
n=3,在坐标值为k*(10^j)处绘制刻度线,其中k为1、2或者5。
xaxs, yaxs 坐标轴范围的计算方式;取值范围为:"r", "i", "e",
"d"。一般来说,计算方式是由xlim的数值范围确定的(如果xlim指定了的话)。"r"(regular)首先会对数值范围向两端各延伸4%,然后在延伸后的数值区间中设置坐标值;"i"(internal)直接在原始的数据范围中设置坐标值;s"(standard)和"e"(extended)、;"d"(direct)目前还不支持。
xaxt,用于设定x坐标轴的刻度值类型,为一个字符。"n"表示不绘制刻度值及刻度线;"s"表示绘制,默认值。
xaxt如果xaxt="n"则设置x-轴但不显示(有助于和axis(side=1,
...)联合使用)
yaxt如果yaxt="n"则设置y-轴但不显示(有助于和axis(side=2,
...)联合使用)
xlog, ylog 坐标是否取对数;默认FALSE
对超出边界的图形的处理方式;取值FALSE:把图形限制在作图区域内,出界的图形截去;取值TRUE:把图形限制在图形区域内,出界的图形截去;取值NA:把图形限制在设备区域内。
xlab x轴标题
xlog,一个逻辑值。如果为TRUE,表示对x轴为对数坐标轴,默认值为FALSE。
yaxp,同xaxp类似,表示y坐标轴的刻度线的区间及区间中的刻度线个数。
yaxs,类似于xaxs,对坐标轴y的间隔设定方式。
yaxt,类似于xaxt。
ylog,类似于xlog。
最后,说明一点:如何设定颜色?R提供了很多和颜色相关的函数供我们调用,如colors()、palette()、rainbow()、rgb()、gray()、hsv()、hcl()等等。以后也会对“如何设定颜色”这一问题进行整理,并且接下来关于R语言的博文也会重点关注于可视化方面,包括如何绘制散点图、条形图、热点图、地图等。
ylab y轴标题
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。  一组学生参加了数学、科学和英语考试。为了给所有的学生确定一个单一的成绩衡量指标,需要将这些科目的成绩组合起来。另外,还想将前20%的学生评定为A,接下来20%的学生评定为B,以此类推。最后,希望按字母顺序对学生排序。
Excel中的数据表(自己一个个敲的,最讨厌做的事情TT)
John Davis
Angela Williams
Bull Jones
Cheryl Cushing
Reuven Ytzrhak
Mary Rayburn
Greg England
Tracy Mcgrady
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
step1:输入数据&&R语言导入xlsx
1 #1数据输入
2 install.packages("xlsx")
3 library(xlsx)
4 workbook&-"D:/R语言/code/R语言实战前五章小试身手/StuScore.xlsx"#也可用&\\&注意转义字符
5 StuScore&-read.xlsx(workbook,1)#1表示sheet1
6 StuScore
step2:数据预处理&&将变量进行标准化
因为数学,科学和英语考试的分值不同(均值和标准差均有较大差异),在组合之前要让他们变得可以比较
方法:变量标准化,把每科成绩都用单位标准差表示
  tips:
所谓数据的标准化是指中心化之后的数据在除以数据集的标准差,即数据集中的各项数据减去数据集的均值再除以数据集的标准差。
例如有数据集1, 2, 3, 6, 3,其均值为3,其标准差为1.87,那么标准化之后的数据集为(1-3)/1.87,(2-3)/1.87,(3-3)/1.87,(6-3)/1.87,(3-3)/1.87,即:-1.069,-0.535,0,1.604,0
数据中心化和标准化的意义是一样的,为了消除量纲对数据结构的影响。
  这里使用scale()可以直接实现
1 & #2数据预处理
2 & options(digits=2)#限定为2位小数
3 & afterscale&-scale(StuScore[,3:5])
4 & afterscale
Math Science English
[1,] -0.58
[2,] -1.02
[5,] -1.15
[8,] -1.54
16 attr(,"scaled:center")
Math Science English
19 attr(,"scaled:scale")
Math Science English
  这里,有两个疑问:
  1.说好的输出两位小数呢?Science那一栏输出的都是三位小数,怎么回事?
  2.这是什么东东?
1 attr(,"scaled:center")
Math Science English
4 attr(,"scaled:scale")
Math Science English
scale方法中的两个参数center和scale的解释:& & & 1.center和scale默认为真,即T或者TRUE& & & 2.center为真表示数据中心化& & & 3.scale为真表示数据标准化
   也就是说:center表示一列数据的均值,scale则表示标准差(有兴趣的同学,可以用Excel的STDEV函数验证一下)
step3:通过函数mean()来计算各行的均值以及获得综合得分,并使用cbind()将其添加到花名册中
1 & #3在afterscale中计算标准差均值,并将其添加到StuScore
2 & score&-apply(afterscale,1,mean)#1表示行,mean表示均值函数
3 & StuScore&-cbind(StuScore,score)
4 & StuScore
StuName Math Science English score
John Davis
2 Angela Williams
Bull Jones
Cheryl Cushing
Reuven Ytzrhak
Mary Rayburn
Greg England
Tracy Mcgrady
Step4:函数quantile()给出学生综合得分的百分位数
  quantile(x,probs):求分位数,其中x为待求分位数的数值型向量,probs为一个由[0,1]之间的概率值组成的数值向量
1 & afterquantile&-quantile(score,c(.8,.6,.4,.2))
2 & afterquantile
0.21 -0.18 -0.50
step5:使用逻辑运算符,把score转为等级(离散型)
1 & #5使用逻辑运算符,把score转为等级(离散型)
2 & StuScore$grade[score&=afterquantile[1]]&-"A"
3 & StuScore$grade[score&afterquantile[1]&&score&=afterquantile[2]]&-"B"
4 & StuScore$grade[score&afterquantile[2]&&score&=afterquantile[3]]&-"C"
5 & StuScore$grade[score&afterquantile[3]&&score&=afterquantile[4]]&-"D"
6 & StuScore$grade[score&afterquantile[4]]&-"E"
7 & StuScore
StuName Math Science English score grade
John Davis
2 Angela Williams
Bull Jones
Cheryl Cushing
Reuven Ytzrhak
Mary Rayburn
Greg England
Tracy Mcgrady
Step6:使用strsplit()以空格为界把学生姓名拆分为姓氏和名字
1 & #Step6:使用strsplit()以空格为界把学生姓名拆分为姓氏和名字
2 & name&-strsplit((StuScore$StuName)," ")
3 Error in strsplit((StuScore$StuName), " ") : non-character argument
5 [1] "Jim"
"Tony" "Lisa" "Tom"
  这里出错了,原因很明确,没有字符型的参数传入,反应过来,原来是用execl导入的时候,StuName那一列默认的是什么类型的呢?我们来检测一下
1 & is.numeric(StuScore$StuName)
2 [1] FALSE
3 & is.logical(StuScore$StuName)
4 [1] FALSE
5 & is.character(StuScore$StuName)
6 [1] FALSE
7 & is.complex(StuScore$StuName)
8 [1] FALSE
9 & help(type)
10 & typeof(StuScore$StuName)
11 [1] "integer"
  因此,我们把他改为字符型
1 & #Step6:使用strsplit()以空格为界把学生姓名拆分为姓氏和名字
2 & StuScore$StuName&-as.character(StuScore$StuName)
3 & is.character(StuScore$StuName)
4 [1] TRUE
5 & name&-strsplit(StuScore$StuName," ")
8 [1] "John"
11 [1] "Angela"
"Williams"
14 [1] "Bull"
17 [1] "Cheryl"
20 [1] "Reuven"
23 [1] "Joel" "Knox"
26 [1] "Mary"
29 [1] "Greg"
32 [1] "Brad" "Tmac"
35 [1] "Tracy"
Step7:把name分成Firstname和LastName,加入到StuScore中
1 & #7把name分成Firstname和LastName,加入到StuScore中
2 & FirstName&-sapply(name,"[",1)
3 & LastName&-sapply(name,"[",2)
4 & StuScore&-cbind(FirstName,LastName,StuScore[,-1])
5 & StuScore
FirstName LastName LastName
StuName Math Science English score grade
John Davis
Angela Williams Williams Angela Williams
Bull Jones
Cheryl Cushing
Reuven Ytzrhak
Mary Rayburn
Greg England
Tracy Mcgrady
Step8:order排序
1 & #8order()排序
2 & StuScore[order(LastName,FirstName),]
FirstName LastName LastName
StuName Math Science English score grade
Cheryl Cushing
John Davis
Greg England
Bull Jones
Tracy Mcgrady
Mary Rayburn
Angela Williams Williams Angela Williams
Reuven Ytzrhak
  虽然是照着书本上做的,但是,代码必须要自己敲一遍,过程中遇到的一些小问题也解决了,就算菜鸟简单入门。这样样例还可以继续拓展,把R语言实战前5章的内容尽可能用一边,可以绘制一些图,等等,本文还会继续更新。
为ScienceScore绘制条形图
  根据不同的分数等级,显示不同的颜色。
1 #为StuScore绘制分组条形图
2 install.packages("vcd")
3 library(vcd)
4 fill_colors&-c()
#不同的等级,不同的颜色显示
5 for(i in 1:length(StuScore$Science)){
if(StuScore$Science[i]==100){
fill_colors&-c(fill_colors,"red")
}else if(StuScore$Science[i]&100&&StuScore$Science[i]&=80){
fill_colors&-c(fill_colors,"yellow")
}else if(StuScore$Science[i]&80&&StuScore$Science[i]&=60){
fill_colors&-c(fill_colors,"blue")
fill_colors&-c(fill_colors,"green")
16 barplot(StuScore$Science,
main="Science Score",
xlab="Name",ylab="ScienceScore",
col=fill_colors,
names.arg=(paste(substr(FirstName,1,1),".",LastName)),
#设定横坐标名称
border=NA,
#条形框不设置边界线
font.main=4,
font.lab=3,
beside=TRUE)
25 legend(x=8.8,y=100,
#左上角点的坐标
c("Excellent","Good","Ordinary","Bad"),
pch=c(15,16,17,19),
#图例中的符号
col=c("red","yellow","blue","green"),
bg="#821122",
#可以在绘图区之外显示
text.font=8,
text.width=.6,
text.col=c("red","yellow","blue","green")
遇到的问题说明:
  起初在设置了20行的名称时,显示了全名,因此出现了一下情况:
    因为名称太挤,显示不出来。
  解决办法有三:
保存img时,增大像素值;
把名词改为简写,即John Davis&&&J.Davis
把名称倾斜,与水平线呈一定的夹角
利用cex.names=.8对条形图的表情进行微调(减小字号)
  由于3没有找到相应的设置参数,所以这里采用了第二种方法。
  最后的效果图:
阅读(...) 评论()
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp}

我要回帖

更多关于 r语言ln函数怎么表示 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信