R语言数据分析与挖掘-高级绘图工具_第1页
R语言数据分析与挖掘-高级绘图工具_第2页
R语言数据分析与挖掘-高级绘图工具_第3页
R语言数据分析与挖掘-高级绘图工具_第4页
R语言数据分析与挖掘-高级绘图工具_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ggplot2绘图工具01102交互式绘图工具01ggplot2绘图工具201PAGE3ggplot2绘图工具ggplot2是一套全面而连贯的语法绘图系统。它弥补了R语言中创建图形缺乏一致性的缺点。ggplot2具有以下特性:高质量图形的绘制,自动化添加网格线和图例。叠加来自不同数据源的多个图层(点、线、地图、箱线图等)。利用R语言强大的建模功能添加平滑曲线,如loess、线性模型、广义可加模型和稳健回归。保存任意ggplot2图形,方便修改或重复使用。制作主题,满足内部定制或杂志风格的需求,便捷地应用到多副图形上。从视觉角度上审视你的图形,斟酌每一部分数据如何呈现在最终图形上。3PAGE4从qplot()函数开始qplot()函数的意思是快速作图(quickplot),利用它可以很方便地创建各种复杂图形。qplot()函数被设计得与plot()函数很像,因此如果有base包绘图基础,那么用起它来也会很容易。qplot()函数的基本表达形式为:

qplot(x,y=NULL,...,data,facets=NULL,margins=FALSE,geom="auto",stat=list(NULL),position=list(NULL),xlim=c(NA,NA),ylim=c(NA,NA),log="",main=NULL,xlab=deparse(substitute(x)),ylab=deparse(substitute(y)),asp=NA)其中,参数facets是图形/数据的分面,参数geom指图形的几何类型,参数stat指图形的统计类型,参数position可图形或者数据的位置调整,其他参数与plot()函数类似。4>if(!require(ggplot2))install.packages("ggplot2")>plot(mtcars$wt,mtcars$mpg)#方法一>qplot(mtcars$wt,mtcars$mpg)#方法二PAGE5从qplot()函数开始同样也可以使用参数main增加主标题,xlab、ylab修改X轴标题和Y轴标题,通过xlim,ylim参数修改X轴、Y轴的范围。5>#修改标题及坐标轴>plot(mtcars$wt,mtcars$mpg,main="利用plot函数绘制散点图",+xlab="Weight(1000lbs)",ylab="Miles/(US)gallon",+xlim=c(0,10),ylim=c(0,40))#方法一>qplot(mtcars$wt,mtcars$mpg,main="利用qplot函数绘制散点图",+xlab="Weight(1000lbs)",ylab="Miles/(US)gallon",+xlim=c(0,10),ylim=c(0,40))#方法二PAGE6从qplot()函数开始甚至,qplot()函数也利用参数pch改变点形状、cex改变点大小、col改变颜色。6>#修改颜色、形状、大小>plot(mtcars$wt,mtcars$mpg,main="利用plot函数绘制散点图",+xlab="Weight(1000lbs)",ylab="Miles/(US)gallon",+xlim=c(0,10),ylim=c(0,40),+pch=7,cex=2,col="green")#方法一>qplot(mtcars$wt,mtcars$mpg,main="利用qplot函数绘制散点图",+xlab="Weight(1000lbs)",ylab="Miles/(US)gallon",+xlim=c(0,10),ylim=c(0,40),pch=I(7),+cex=I(2),col=I("green"))#方法二PAGE7从qplot()函数开始上面的例子都是通过利用qplot()函数绘制散点图,可以通过参数geom指定不同的几何对象,绘制各种图形。7>#通过geom参数指定图形的几何类型>library(ggplot2)>q1<-qplot(wt,mpg,data=mtcars,geom="point",main="散点图")>q2<-qplot(wt,mpg,data=mtcars,geom=c("point","smooth"),+main="增加拟合曲线的散点图")>q3<-qplot(Species,Sepal.Length,data=iris,geom="boxplot",main="箱线图")>q4<-qplot(Species,Sepal.Length,data=iris,geom="violin",main="小提琴图")>q5<-qplot(clarity,data=diamonds,geom="bar",main="柱状图")>q6<-qplot(carat,data=diamonds,geom="histogram",main="直方图")>if(!require(gridExtra))install.packages("gridExtra")>grid.arrange(q1,q2,q3,q4,q5,q6,ncol=3)PAGE8ggplot()函数绘图ggplot()函数的功能是初始化一个ggplot对象,不指定做图内容。其使用格式为:

ggplot(data=NULL,…)其中,data指数据集。layer()函数的功能是创建一个新的图层。其使用格式为:layer(geom,stat,data,mapping,position)其中,geom为图形的几何类型,stat为图形的统计类型,data指数据集,mapping指映射,position可图形或者数据的位置调整。8几何对象函数描述

geom_abline直线:由斜率和截距指定geom_area面积图geom_bar条形图geom_bin2d二维封箱的热图geom_blank空的几何对象,什么也不画geom_boxplot箱线图geom_contour等高线图geom_crossbarCrossbar图(类似于箱线图,但没有触须和极值点)geom_density密度图geom_density2d二维密度图geom_errorbar误差线(通常添加到其他图形上,比如柱状图、点图、线图等)geom_errorbarh水平误差线geom_freqploy频率多边形(类似于直方图)geom_hex六边形图(通常用于六边形封箱)geom_histogram直方图geom_hline水平线geom_jitter自动添加了扰动点geom_line线geom_linerange区间,用竖直线表示geom_path几何路径,由一组点按顺序链接geom_point点geom_pointrange一条垂直线,线的中间有一个点(与Crossbar图和箱线图有关)geom_polygon多边形geom_quantile一组分位数线(来自分位数回归)geom_rect二维的长方形geom_ribbon彩虹图geom_rug触须geom_segment线段geom_smooth平滑的条件均值geom_step阶梯图geom_text文本geom_tile瓦片(即一个个小长方形或多边形)PAGE9ggplot()绘图示例9>library(ggplot2)>ggplot(iris,aes(x=Species,y=Sepal.Length,fill=Species))++geom_boxplot()++labs(title="依据种类分组的花萼长度箱线图")++theme(legend.position="none")>ggplot(iris,aes(x=Species,y=Sepal.Length,fill=Species))++geom_violin()++geom_jitter()++labs(title="依据种类分组的花萼长度箱线图")++theme(legend.position="none")PAGE10ggplot2分面板10可以利用facet_wrap()或facet_grid()函数对图形进行分面。例如利用lattice中的数据集singer,对不同声部的身高数据绘制密度图。可以设置面板的行数或列数(通过facet_wrap()中的参数nrow和ncol设置),并可以利用主题参数theme设置图例。>data(singer,package="lattice")>ggplot(data=singer,aes(x=height,fill=voice.part))++geom_density()++facet_wrap(~voice.part,ncol=4)++theme(legend.position="none")PAGE11修改颜色11可以使用scale_color_manual()或scale_color_brewer()函数修改图形的颜色。#调整图形填充颜色>#方式一:使用scale_color_manual函数>g1<-ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width,colour=Species,shape=Species))++scale_color_manual(values=c("orange","olivedrab","navy"))++geom_point(size=3)>#方式二:使用scale_color_brewer函数>g2<-ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width,colour=Species,shape=Species))++scale_color_brewer(palette="Set1")++geom_point(size=3)>gridExtra::grid.arrange(g1,g2,ncol=2)PAGE12ggthemes扩展包12ggthemes是ggplot2的主题扩展包,提供ggplot2使用的新主题、尺度、几何对象和一些新函数。ggthemes通过install.packages("ggthemes",dependencies=TRUE)命令进行安装。加载该包主要作用是ggthemes提供的themes可以让我们快速绘制不同主题图像。主题名描述

theme_base类似于ggplot默认设置theme_calc类似LibreOfficeCalc图表theme_economist类似经济类图表theme_economist_white类似经济类图表theme_excel类似经典excel图表theme_few简洁型theme_fivethirtyeight类似于

的图

theme_foundation这个主题的设计是为基础建立新的主题,而不是直接使用。theme_foundation是一个完整的主题,只有最小的元素定义。它相比于theme_gray或theme_bw更容易通过扩展创建新的主题。theme_gdocs类似默认的GoogleDocsCharttheme_hcHighchartsJStheme_igary主题与白色面板和灰色背景。theme_map一个简洁的地图主题theme_panderpander的默认主题theme_solarized可以看/solarized的介绍theme_solarized_2同上theme_solid主题删除所有non-geom元素(线条、文本等),这个主题只有所需的几何对象。theme_stata基于Statagraphschemes的主题theme_tufte基于数据墨水最大化和图形设计的EdwardTufte定量信息的视觉显示。没有边界,没有轴线,没有网格。这个主题与geom_rug或geom_rangeframe结合效果最好。theme_wsjWallStreetJournalthemePAGE13ggExtra扩展包13ggExtra是一个在ggplot2图形边缘添加直方图的扩展包,可以通过install.packages(“ggExtra”)命令进行安装。ggMarginal()函数可以给ggplot2图形边界添加密度图、直方图、箱线图或小提琴图。运行以下代码给散点图的X、Y轴添加直方图。>library(ggExtra)>library(ggplot2)>set.seed(1234)>df<-data.frame(x=rnorm(1000,50,10),y=rnorm(1000,50,10))>p<-ggplot(df,aes(x,y))+geom_point()+theme_classic()>#addmarginalhistograms>ggMarginal(p,type="histogram")>ggMarginal(p,type="histogram",colour="pink",fill="green")交互式绘图工具1402PAGE15recharts包15recharts基于Echarts2的一个稳定发布版(v2.2.7)开发,安装命令如下:recharts是一个用于交互可视化的R扩展包,它提供了一套面向JavaScript库ECharts2的接口。此包的目的是让R语言用户即便不精通HTML或JavaScript,也能用很少的代码做出Echarts交互图。当然,懂一点JavaScript的话会更如虎添翼。recharts基于htmlwidgets扩展包开发,这样做的优点是极大地节省了开发者管理JavaScript依赖包和处理不同类型的输出文档(如RMarkdown和Shiny)的时间。你只需要创建一幅图,而如何输出这幅图(无论RMarkdown,Shiny,还是R控制台/RStudio)则交由htmlwidgets来处理。if(!require(devtools))library(devtools)devtools::install_github('madlogos/recharts')PAGE16recharts包-散点图16此包的主函数是echartr()和S3通用函数echart()。在设计宗旨上,希望它们能自动处理不同类型数据。比如,当把一个数据框传入echart(),而x、y变量均为数值型,它们会自动适配散点图,并自动生成对应的坐标轴。当然,你也可以通过参数type选择需要展示的图形。echartr()函数的基本表达形式为:

echartr(data,x=NULL,y=NULL,series=NULL,weight=NULL,facet=NULL,t=NULL,lat=NULL,lng=NULL,type="auto",subtype=NULL,elementId=NULL,...)主题名描述

data数据源,必须是数据框x自变量。data的一列或多列。可以是时间、数值或文本型y因变量,data的一列或多列。始终为数值型series分组变量,data的某一列。进行运算被视为因子。作为数据系列映射到图例weight权重变量,在气泡图、线图、柱图中与图形大小关联facet分面变量,data的某一列。facet的每个水平会生成一个独立的分面type图表类型,默认为auto>library(recharts)>echartr(iris,Sepal.Length,Sepal.Width)PAGE17recharts包-条形图17recharts扩展包绘制条形图包含三种类型:条图:bar|hbar、柱图:column|vbar、直方图:histogram|hist。>revenue<-read.csv("../data/revenue.csv")>library(reshape2)>revenue<-melt(revenue,id="游戏名称")>colnames(revenue)<-c("游戏名称","时间段","收入")>#绘制条形图,默认hbar类型>b<-echartr(revenue,"游戏名称","收入","时间段")%>%+setTitle("游戏收入",pos=12)%>%+setLegend(pos=6)>bPAGE18rbokeh包18Bokeh是一个创建交互式图表和地图的python库,现在有了对应的R包,作者是RyanHafen。它可以很容易地创建漂亮的网页图表,并且跟Shiny完全兼容。通常,利用bokeh来绘图需要给图形添加图层,类似于ggplot2。对于创建一个简单的图表,主要包含以下两个步骤:(1)figure()——初始化图形。它有很多参数,用来设置宽度、高度、标题和坐标轴参数。(2)ly_geom()——指定你要用到的几何类型。这里有多种选择:ly_points

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论