强化 门户网站建设,今天的新闻大事,好看的单页,html网页制作超链接ggpolt2绘图系统被称为R语言中最高大上的绘图系统#xff0c;使用ggplot2绘图系统绘图就像是在使用语法创造句子一样#xff0c;把数据映射到几何客体的美学属性上。因此使用ggplot2绘图系统的核心函数ggplot来绘图必须具备三个条件#xff0c;数据data#xff0c;美学属性…ggpolt2绘图系统被称为R语言中最高大上的绘图系统使用ggplot2绘图系统绘图就像是在使用语法创造句子一样把数据映射到几何客体的美学属性上。因此使用ggplot2绘图系统的核心函数ggplot来绘图必须具备三个条件数据data美学属性aes几何客体geom缺一不可。在ggplot2绘图系统中有很多的“层Layer”这些层就好像是不同的动词名词形容词等等我们需要将这些层组合在一起就能够绘制图形了。
第一层是数据层Data第二层是与美学相关的层Aesthetics比如颜色标题线宽等等第三层是几何客体层比如是点还是线等还有一些比较高级的层比如
统计变换层Statistical transformations layers
统计变换层用于在图形中应用统计变换。 geom_smooth()平滑图层用于添加平滑线如线性回归线或局部回归线。
注释层Annotation layers
注释层用于在图形中添加文本或箭头等注释。 geom_text()文本图层用于在图形中添加文本标签。geom_label()标签图层用于添加文本标签并可以调整位置。annotate()注释函数用于添加各种类型的注释如文本、箭头、矩形等。
主题层Theme layers
主题层用于调整图形的外观和风格。 theme()主题函数包含了一系列的参数用于调整图形的背景、文字、线条等样式。
坐标系层Coordination layers
坐标系层用于改变图形的坐标系。 coord_cartesian()笛卡尔坐标系用于设置 x 和 y 轴的范围。coord_flip()翻转坐标系交换 x 和 y 轴。coord_polar()极坐标系用于创建雷达图等。coord_trans()转换坐标系用于对坐标轴进行变换。
下面将举例对ggplot2绘图进行演示
运行代码qplot(Wind,Temp,dataairquality)x轴是Windy轴是Temp数据源是airquality结果如图确实比较高级 再引入参数colMonth会发生什么第一次看可能有疑问怎么能把一个Month变量Month变量是一个向量赋给col呢不都是把某个数字或者颜色赋给col吗这个就不用我们深究qplot中确实有这样的参数写法允许把一个向量赋给col运行之后结果如图可以看到从五月份到九月份的散点分别用深度不同的蓝色表示 而实际上我们只需要用不同颜色表示不同的月份即可不需要非要用颜色深度不同的渐变色这时候我们需要的是把Month转换成一个分类变量。运行这两句代码 产生的结果就是这样的一个图此时的Month被转换成了一个因子虽然不是分类变量但是可以认为因子就具有分类变量的功能了 如果是只想用某一种特定颜色比如红色绘制散点图可以把col参数写成colI(red)如图 当然美学属性不止有颜色还可以改变散点的大小比如把Month赋给size运行代码qplot(Wind,Temp,dataairquality,sizeMonth)得到结果 也可以对散点的形状进行操作比如运行代码qplot(Wind,Temp,dataairquality,shapeMonth)不同月份的散点形状就不同了 当然也可以使用大写的I来使散点的形状或者大小是一个固定的值也可以使用常见的参数比如xlabylabmain等设置标签
qplot的参数还有geom这个参数代表几何客体比如有这样的代码qplot(Wind,Temp,dataairquality,geomc(point,smooth))其中point代表要绘制散点图smooth表示还要添加一条平滑线ggplot2会自动选择一个合适的平滑线添加进去。这句代码的运行结果如图图中的蓝色曲线就是ggplot2自动选择的平滑线蓝色线周围的阴影部分是置信区间。 如果我们再把颜色这个参数加上即运行代码qplot(Wind,Temp,dataairquality,geomc(point,smooth),colMonth)就产生了一幅这样的图像每个月份都有一种颜色的平滑线和散点。从而我们可以体会到颜色这个参数如果跟分类变量联系起来会对我们的结果产生巨大影响。 再比如运行这句代码qplot(Wind,Temp,dataairquality,facets .~Month)其中参数facets参数用于创建分面facet图表这是一种将数据的多个子集布局在同一个图形窗口中的技术结果~ 是 R 语言中用于创建公式的符号而. 代表整个数据集意味着分面将应用于整个数据集。如图 如果把Month放在左边~.放在右边就会变成一个五行一列的图像运行代码qplot(Wind,Temp,dataairquality,facets Month~.)结果如图 qplot是非常智能的前面我们传的前面参数是两个Wind与Temp但是并没有指定绘制什么类型的图像这时候qplot会猜测我们要绘制散点图如果是传一个参数比如只传Windqplot会猜测我们要绘制的是一个柱状图。比如代码qplot(Wind,dataairquality)的运行结果为风速的频率分布图横坐标代表风速纵坐标代表频率 运行qplot(Wind,dataairquality,fillMonth)引入了参数fill在 ggplot2 中fill 参数是一个非常重要的美学映射aesthetic选项它用于设置图形中填充区域的颜色。 运行代码qplot(Wind,dataairquality,geomdensity)表示把美学客体设置密度函数的形式运行结果如图 介绍完qplot函数之后再来介绍一下ggplot2绘图系统的核心函数ggplot函数
ggplot函数绘图需要数据层美学层几何客体层缺一不可比如代码ggplot(airquality,aes(Wind,Temp))只有数据层和美学层没有几何客体层运行这句代码之后发现没有任何图形在画图板其中airquality用于指定数据层aes参数用于设定图形的美学映射比如这里就是把Wind映射到x轴而Temp映射到y轴。想要绘制图形我们还应该添加几何客体层代码应该写成ggplot(airquality,aes(Wind,Temp))geom_point()是ggplot函数中的函数组合运算符用于将多个图层或修改添加到图形中。geom_point()是一个几何对象geom用于在图形中绘制点。它告诉ggplot 在图形的每个 (WindTemp) 坐标点上绘制一个点。运行结果如图 ggplot(airquality,aes(Wind,Temp))geom_point(colred,alpha0.4,size5)可直接在geom_point函数中对散点进行某些设置比如颜色是红色透明度0.4大小是5。如果想要每个月份都用不同颜色的点来表示就可以这样写geom_point(aes(colfactor(Month)),alpha0.4,size5)运行结果如图注意颜色参数的设置首先是把Month这个数值型向量转换成因子类型这样他就具有了分类变量的属性然后colfactor(Month),但是这样还不够必须在aes内部进行aes是ggplot2中的一个非常重要的函数它用于设置图形的美学映射aesthetic mapping即数据变量与图形属性之间的映射关系。 我们还可以继续添加一条平滑线ggplot(airquality,aes(Wind,Temp))geom_point()geom_smooth()或者ggplot(airquality,aes(Wind,Temp))geom_point()stat_smooth()这两句代码运行结果是一样的运行结果为 运行代码ggplot(airquality,aes(Wind,Temp))stat_smooth(methodlm,seF)表示可以设置拟合的方式为线性回归同时不显示置信区间 运行代码ggplot(airquality,aes(Wind,Temp))stat_smooth(methodlm,seF,aes(colMonth))表示每个月份用不同颜色的回归直线来拟合结果方法是在stat_smooth函数中添加一个美学属性的参数。当然也可以直接写到ggplot中的aes中不一定非要写在stat_smooth的aes中也即代码ggplot(airquality,aes(Wind,Temp,colfactor(Month)))stat_smooth(methodlm,seF)与上面代码的运行结果是一样的 上面是用每个月份的数据分别进行了拟合如果直接用所有月份数据进行拟合并希望每个月份用不同颜色的线应该引入参数group1也即ggplot(airquality,aes(Wind,Temp,colfactor(Month),group1))stat_smooth(methodlm,seF)但是运行这句代码之后我们发现并没有达到我们的要求他虽然使用了所有月份的数据进行拟合但是却只用了蓝色 实际上是因为颜色的参数是只作用到了第一层点的那一层我们把散点加上就可以观察到。ggplot(airquality,aes(Wind,Temp,colfactor(Month),group1))geom_point()stat_smooth(methodlm,seF)结果为 在上面的例子中不同月份使用的点的颜色是我们无法人为控制的如果我们想要人为控制并且使用一些比较好看的颜色可以使用R包RColorBrewer
运行代码my_colors
先运行代码display.brewer.pal(5,Dark2)来看看my_colors中的颜色是什么 运行代码library(RColorBrewer)
my_colors
display.brewer.pal(5,Dark2)
ggplot(airquality,aes(Wind,Temp,colfactor(Month),group1,colAll))
geom_point()
stat_smooth(methodlm,seF)
scale_color_manual(Month,valuesmy_colors)
结果如图 还可以把不同月份的散点显示在不同的面板中比如运行代码ggplot(airquality,aes(Wind,Temp,colfactor(Month),group1))geom_point()scale_color_manual(Month,valuesmy_colors)facet_grid(.~Month)这段代码引入了函数facet_grid()结果如图