R语言最强大的一点就是画图,那个无比强大的画图系统,再加上各种各样的神级R包,让我写R语言中最喜欢的一点就是写绘图代码。 简单来说,R语言原生的绘图系统已经非常强大了,根本不需要其他东西的辅助,就可以绘制非常炫目的图片,需要的仅仅是耐心。另外R语言还有一系列的绘图辅助R包,比如著名的 再近几年,R语言推出了
R语言绘图基础再大的工程也是又一块砖一块砖垒起来了。在复杂的R图也是又忒简单的元素组成的,下面的这些东西,可谓是R绘图最基本的元素,能把它们掌握,就可以绘制出相对OK的图。 颜色> plot(1:10,col='red')
之前提到过,绘图函数(比如bixplot或者plot)中的 面对上面这种浩如烟海的颜色,你可以直接把那个标号:”#XXXX”用到程序里。 另外不得不推荐一个极好的R包,叫做RColorBrewer,这个包的功能主要就是提供一些自己已经配好色的R颜色,另外提供一系列颜色的分配,比如你想要从正黄色到正蓝色直接过度10个颜色,就可以用这个包。 > colorRampPalette(brewer.pal(9,'Blues'))(100) -> color> plot(1:100,col=color,pch=20,cex=2)
又如: > barplot(1:5,col=RColorBrewer::brewer.pal(n = 5,name = 'Set2'))
文字有时候做了一个图,想要在图中加一些问题,这个问题可以用 > barplot(1:5,col=RColorBrewer::brewer.pal(n = 5,name = 'Set2'))> text(x=4,y=4,labels = 'Hello World!',cex=2)
点、线点和线是很基础的元素,点的函数是 > barplot(1:5,col=RColorBrewer::brewer.pal(n = 5,name = 'Set2'))> points(rep(3,5),pch=20,cex=3,col='orange')
> barplot(1:5,col=RColorBrewer::brewer.pal(n = 5,name = 'Set2'))> points(rep(3,5),pch=20,cex=3,col='orange')> lines(sample(1:5),col='gray',lwd=2,lty=2)
如果说是划线的话,也很简单,使用lines函数,用法和之前是一样的,如果你输入了对应的x,y坐标,就可以直接绘制,如果只输入一个vector,程序就默认横坐标是1,2,3…… 后面的参数里, 标题标题其实是很容易的,只需要再plot或者其他绘图程序里,添加 plot(1:10,main='This is a Title',cex.main=1.5)
这个真没什么好说的, 图例图例的目的就是望你看懂你在画什么,通过 x <- seq(-pi,="" pi,="" len="">->65)plot(x, sin(x), type = 'l', ylim = c(-1.2, 1.8), col = 3, lty = 2)points(x, cos(x), pch = 3, col = 4)lines(x, tan(x), type = 'b', lty = 1, pch = 4, col = 6)title('legend(..., lty = c(2, -1, 1), pch = c(NA, 3, 4), merge = TRUE)', cex.main = 1.1)legend(-1, 1.9, c('sin', 'cos', 'tan'), col = c(3, 4, 6), text.col = 'green4', lty = c(2, -1, 1), pch = c(NA, 3, 4), merge = TRUE, bg = 'gray90')
上述就是legend函数的一堆参数,其中col,lty等等都和plot一模一样。 坐标轴坐标轴是很容易处理的东西。直接设置参数就行了。 > plot(1:10,xlab='X lab',ylab='y lab')
有一个很有意思的情况是,如果想要更换坐标轴上的1,2,3,4,5该怎么办? plot(1:10, xaxt = 'n', xlab='Some Letters')axis(1, at=1:10, labels=letters[1:10])
甚至于,如果想要将坐标轴旋转一些角度,应该怎么办?这个问题我经常遇到,原因就是有时候label的名字太长了。。。其实代码真的超简单: > par(las=2)> plot(1:10, xaxt = 'n', xlab='Some Letters')> axis(1, at=1:10, labels=letters[1:10])
构图函数根据我几年的R语言经验,构图函数真的是一个很多教材都没有认真写的东西,但实战中经常经常经常涉及这方面问题啊,在这里我记录了一下: 首先就是,如果你想在一张图上绘制多个图形怎么办? > par(mfrow=c(2,3))> plot(1:10)> plot(1:10)> plot(1:10)> plot(1:10)> plot(1:10)> plot(1:10)
使用 还有另外一种更为厉害的分屏: # One figure in row 1 and two figures in row 2attach(mtcars)layout(matrix(c(1,1,2,3), 2, 2, byrow = TRUE))hist(wt)hist(mpg)hist(disp)
这是我曾经最喜欢的一个多图函数,其中的设置都是再layout里边的matrix,里边你可以无限多地设置函数,每一张图可以通过数字连起来,这样就可以做出各种形状的组合图形。 |
|