1语言数据可视化2学习内容一R绘图基础二各类图形绘制三习题和资料为什么要学习R语言R是•一个开放(GPL)的统计编程环境•一种语言,是S语言(由AT&TBell实验室的RickBecker,JohnChambers,AllanWilks开发)的一种方言(dialect)之一,另一则为S-plus.•一种软件,是集统计分析与图形直观显示于一体的统计分析R作为一个计划(project),最早(1995年)是由Auckland大学统计系的RobertGentleman和RossIhaka开始编制,目前由R核心开发小组(RDevelopmentCoreTeam-以后用RDCT表示)维护,他们完全自愿、工作努力负责,并将全球优秀的统计应用软件打包提供给我们。我们可以通过R计划的网站()了解有关R的最新信息和使用说明,得到最新版本的R软件和基于R的应用统计软件包.3–R是完全免费的!!而S-Plus尽管是非常优秀的统计分析软件,可是你需要支付一笔$US.–R可以在运行于UNIX,Windows和Macintosh的操作系统上.–R嵌入了一个非常实用的帮助系统.–R具有很强的作图能力.–我们将R程序容易地移植到S-Plus程序中,反之S的许多过程直接或稍作修改用于R.–通过R语言的许多内嵌统计函数,很容易学习和掌握R语言语法.–我们可以编制自己的函数来扩展现有的R语言(这就是为什么它在不断等级完善!!)–…....4为什么要学习R语言5一R绘图基础6图R绘制的图形7绘制地图•图左图maps包map()右图PBSmapping包addBubbles()8绘制地图•图fields包实例spdep包实例9R绘图功能R具备卓越的绘图功能,通过参数设置对图形进行精确控制。绘制的图形能满足出版印刷的要求,可以输出Jpg、tiff、eps、emf、pdf、png等各种格式。通过与GhostScript软件的结合,可以生成600dpi,1200dpi的等各种分辨率和尺寸的图形。绘图是通过绘图函数结合相应的选项完成的。demo(graphics):了解R绘图功能绘图函数包括:−高阶绘图函数High-levelPlottingFunction•产生一个新的图区,可能包括坐标轴、标签、标题等。−低阶绘图函数Low-levelPlottingFunction•在已有的图上加更多的元素绘图参数−缺省值−?par()10R绘图功能11高阶绘图函数plot(x)、plot(x,y)绘制散点图等多种图形,根据数据的类,调用相应的函数绘图pie(x)饼图boxplot(x)箱线图hist(x)频率直方图coplot(x~y|z)条件分割图Interaction.plot(f1,f2,y)交互效应图qqplot(x,y)、qqnorm(x)QQ图contour(x,y,z)等高线图persp(x,y,z)三维透视图barplot(x)柱状图/条形图matplot(x,y)矩阵图mosaicplot(x)马赛克图pairs(x)散点图矩阵sunflowerplot(x,y)向日葵散点图stars(x)星状图stripchart(x)带状图dotchart(x)Cleveland点图filledcontour(x,y,z)颜色等高线图image(x,y,z)颜色图12高阶绘图函数13低阶绘图函数points()添加点lines()添加线curve()添加曲线abline()添加给定斜率的线title()添加标题text()添加文字mtext()在图的边空添加文字axis()画坐标轴低阶绘图函数14legend()添加图例rug()添加刻度线rec()绘制长方形polygon()绘制多边形segments()添加线段arrows()画箭头box()添加外框15绘图参数参数用在函数内部,在没有设定值时使用缺省值。font=字体,lty=线类型,lwd=线宽度,pch=点的类型,xlab=横坐标,ylab=纵坐标,xlim=横坐标范围,ylim=纵坐标范围,也可以对整个要绘制图形的各种参数进行设定参见?par()16绘图参数17一页多图图一页多图par()par(mfrow=c(2,2))...18在原有图形上添加元素举例:先执行par(mfrow=c(2,2))x-rnorm(100)#生成随机数hist(x,freq=F)#绘制直方图curve(dnorm(x),add=T)#添加曲线h-hist(x,plot=F)#绘制直方图ylim-range(0,h$density,dnorm(0))#设定纵轴的取值范围hist(x,freq=F,ylim=ylim)#绘制直方图curve(dnorm(x),add=T,col=red)#添加曲线19图在原有直方图上添加曲线20二、各类图形绘制1基于比较的绘图柱形图.R、条形图.R、折线图.R、2基于关系的绘图散点图.R、气泡图.R3基于组合的绘图饼图.R、4基于分布的绘图直方图.R、核密度图.R、凹槽箱线图.R、箱线图.R、小提琴图.R5基于时间的绘图LOESS曲线图.R、阶梯图.R6基于空间的绘图地图添加标记.R、地图中画气泡.R、地图中画线.R7多维信息可视化散点图矩阵.R、线图.R、平行坐标图.R、星状图.R、堆叠柱状图.R、热力图.R、马赛克图.R、切尔诺夫脸谱图.R8文本与文档可视化词云-英文.R、词云-中文.RtN-table(Ni-rpois(100,lambda=5))tN0123456789111217121416141994211r-barplot(tN,col='gray')01234567891112051015条形图22饼图pie(tN)01234567891112par(mfrow=c(1,3))y-rt(200,df=5)qqnorm(y);qqline(y,col=2)#和正态分布比qqplot(y,rt(300,df=5));#和t(5)分布比data(precip)qqnorm(precip,ylab=“Precipitation[in/yr]for70UScities”);qqline(precip,col=3)#和正态分布比par(mfrow=c(1,1))-3-2-10123-4-2024NormalQ-QPlotTheoreticalQuantilesSampleQuantiles-4-2024-2024yrt(300,df=5)-2-1012102030405060NormalQ-QPlotTheoreticalQuantilesPrecipitation[in/yr]for70UScitiesQQ图24data(iris)pairs(iris[1:4],main=Anderson'sIrisData--3species,pch=21,bg=c(red,green3,blue)[codes(iris$Species)])#iris为1505数据,这里是4个数量变量的点图(最后一个是分类变量(iris$Species))散点图矩阵Sepal.Length2.02.53.03.54.00.51.01.52.02.54.55.56.57.52.02.53.03.54.0Sepal.WidthPetal.Length12345674.55.05.56.06.57.07.58.00.51.01.52.02.51234567Petal.WidthAnderson'sIrisData--3species•par(bg=cornsilk)•data(quakes)•coplot(lat~long|depth,data=quakes,pch=21,bg=green3)#HitReturntoseenextplot:25条件分割图-35-30-25-20-15-10165170175180185165170175180185165170175180185-35-30-25-20-15-10longlat100200300400500600Given:depthx-seq(-10,10,length=30)y-xf-function(x,y){r-sqrt(x^2+y^2);10*sin(r)/r}z-outer(x,y,f)z[is.na(z)]-1persp(x,y,z,theta=30,phi=30,expand=0.5,col=lightblue)26三维透视图xyz27data(volcano)rx-range(x-10*1:nrow(volcano))ry-range(y-10*1:ncol(volcano))ry-ry+c(-1,1)*(diff(rx)-diff(ry))/2tcol-terrain.colors(12)par(opar);opar-par(pty=s,bg=lightcyan)plot(x=0,y=0,type=n,xlim=rx,ylim=ry,xlab=,ylab=)u-par(usr)rect(u[1],u[3],u[2],u[4],col=tcol[8],border=“red”)#rect画矩形contour(x,y,volcano,col=tcol[2],lty=solid,add=TRUE,vfont=c(sansserif,plain))title(ATopographicMapofMaungaWhau,font=4)abline(h=200*0:4,v=200*0:4,col=lightgray,lty=2,lwd=0.1);par(opar)等高线图28等高线图02004006008000200400600ATopographicMapofMaungaWhau29data(volcano)x-10*(1:nrow(volcano))y-10*(1:ncol(volcano))image(x,y,volcano,col=terrain.colors(100),axes=FALSE)contour(x,y,volcano,levels=seq(90,200,by=5),add=TRUE,col=peru)axis(1,at=seq(100,800,by=100))axis(2,at=seq(100,600,by=100))box()title(main=MaungaWhauVolcano,font.main=4)颜色图30xy100200300400500600700800100200300400500600MaungaWhauVolcano颜色图ggplot23132ggplot2简介33为什么要使用ggplot234Ggplot2的基本概念35数据(data)和映射(mapping)36几何对象(Geometric)37统计变换(statistics)38坐标(coordinate)39图层(layer)40分面(facet)414243三习题和资料44练习1:绘图生成0到2之间的50个随机数,分别命名为x,yx-runif(50,0,2)y-runif(50,0,2)绘图:将主标题命名为“散点图”,横轴命名为”横坐标”,纵轴命名为“纵坐标”plot(x,y,main=散点图,xlab=横坐标,ylab=纵坐标)text(0.6,0.6,textat(0.6,0.6))abline(h=.6,v=.6)45图练习1:绘图举例46练习2:分步绘图1.打开绘图窗口,不绘制任何对象plot(x,y,type=n,xlab=,ylab=,axes=F)#用练习1的x、y值2.添加坐标点points(x,y)3.添加坐标轴axis(1);axis(at=seq(0.2,1.8,0.2),side=2)4.补齐散点图的边框box()5.添加标题、副标题、横轴说