今天这篇文章主要来讲讲 R语言基础绘图, 而R语言中最简单的一个绘图函数就是plot,所以我们从plot函数讲起。
首先导入数据,数据我也直接贴出来
> read.csv('height-weight.csv',header=T,sep=',')
Gender Age Height Weight
1 Male 21 163 60
2 Male 22 164 56
3 Male 21 165 60
4 Male 23 168 55
5 Male 21 169 60
6 Male 21 170 54
7 Male 23 170 80
8 Male 23 170 64
9 Male 22 171 67
10 Male 22 172 65
11 Male 23 172 60
12 Male 21 172 60
13 Male 23 173 60
14 Male 22 173 62
15 Male 21 174 65
16 Male 22 175 70
17 Male 22 175 70
18 Male 22 175 65
19 Male 23 175 60
20 Male 21 175 62
21 Male 21 176 58
22 Male 21 178 70
23 Male 23 178 75
24 Male 23 180 63
25 Male 23 180 71
26 Male 23 183 75
27 Female 20 153 42
28 Female 20 156 44
29 Female 21 156 38
30 Female 21 157 48
31 Female 21 158 52
32 Female 23 158 45
33 Female 22 159 43
34 Female 22 160 50
35 Female 21 160 45
36 Female 21 160 52
37 Female 23 160 50
38 Female 22 161 50
39 Female 21 161 45
40 Female 21 162 55
41 Female 20 162 60
42 Female 20 163 56
43 Female 20 163 56
44 Female 21 163 59
45 Female 22 164 55
46 Female 23 164 47
47 Female 21 165 45
48 Female 21 165 45
49 Female 20 165 60
50 Female 20 168 58
51 Female 21 168 49
52 Female 22 170 54
>plot(rawdata[,3],rawdata[,4]) // 绘制散点图
>abline(lm(rawdata[,4]~rawdata[,3])) // 架线
>title('身高和体重关系图')
>png('mygraph.png')
// 其他保存格式pdf(), jpeg(), bmp(), tiff(), postscript()等
>dev.off() // 关闭当前图形
注意点:
即通过图形参数选项定义图形的多个特征(字体、颜色、坐标轴、标题), 如果不进行设置大部分参数都有一个默认值,上面绘图我们用的就是默认样式
> default_par<-par(no.readonly=T) // 获取默认设置, 你可以看到所有可以设置的参数
> default_par
例如:par(pin=c(4,3), mai=c(1, 0.5, 1, 0.2))生成4**英寸宽,3英寸高,上下边界为1英寸,左边界为0.5英寸,右边界为0.2英寸**的图形。
plot(rawdata[,3],rawdata[,4],type='b',col='red',col.lab='red',
main='身高与体重关系图',xlab='Height',ylab='Weight', xlim=c(150,185), ylim=c(30,90))
1、title 函数
title(main='main title', sub='sub title',
xlab='x-axis label', ylab='y-axis label',
col.main='color', col.lab='color', cex.lab=1)
2、使用 axis 函数自定义坐标轴
axis(side, at=, labels=, pos=, lty=, col=, las=, tck=, ……)
3、参考线 使用 abline函数
abline(h=yvalues, v=xvalues)
e.g.
abline(h=c(2,4,6))
// 在y=2,4,6的位置添加水平实线
4、使用 legend 函数,添加图例
legend(location, title, legend, ……)
5、文本标注 text() 和 mtext() 函数
text(location, 'text to place', pos, ……)
mtext('text to place', side, line=n, ……)
R语言绘图基础就大概这么些比较重要,确实很琐碎,只有多用,才能够熟练!最后举个例子:
> mydata<-read.csv('income.csv')
Year urban rural
1 1978 343.4 133.6
2 1980 477.6 191.3
3 1985 739.1 397.6
4 1990 1510.2 686.3
5 1991 1700.6 708.6
6 1992 2026.6 784.0
7 1993 2577.4 921.6
8 1994 3496.2 1221.0
9 1995 4283.0 1577.7
10 1996 4838.9 1926.1
11 1997 5160.3 2090.1
12 1998 5425.1 2162.0
13 1999 5854.0 2210.3
14 2000 6280.0 2253.4
15 2001 6859.6 2366.4
16 2002 7702.8 2475.6
17 2003 8472.2 2622.2
18 2004 9421.6 2936.4
19 2005 10493.0 3254.9
20 2006 11759.5 3587.0
21 2007 13785.8 4140.4
22 2008 15780.8 4760.6
23 2009 17174.7 5153.2
24 2010 19109.4 5919.0
> png('out_res1.png')
> plot(mydata[,1],mydata[,2],lty=3,xlab='year',ylab='population',pch=17,col='blue')
> lines(mydata[,1],mydata[,3],lty=2,pch=8,col='red')
> text(x=2005,y=4000,'city-ural')
> text(x=1995,y=5600,'city-urban')
> title(main='Year-Income')
> dev.off()