求助ggplot绘图2绘图

ggplot绘图2包实现了基于语法的、连贯┅致的创建图形的系统由于ggplot绘图2是基于语法创建图形的,这意味着它由多个小组件构成,通过底层组件可以构造前所未有的图形ggplot绘圖2可以把绘图拆分成多个面板,且能够按照顺序创建多重图形基本上,无所不能是R开发人员必学必会的包。

ggplot绘图2图形系统的核心理念昰:

  • 把绘图与数据分离把数据相关的绘图与数据无关的绘图分离;

  • 按图层作图,有利于结构化思维;

  • 具有命令式作图的调整函数

使用ggplot繪图2包创建图形时,每个图形都是由函数ggplot绘图()创建的由几何对象来控制绘制的几何图形,通过符号“+”来增加图形的元素这使得绘制圖形的过程结构化,同时使绘图更具灵活性绘制出来的图形美观,避免繁琐的细节

使用函数ggplot绘图()初始化图形对象,并指定绘制图形的數据集和坐标轴的映射在ggplot绘图()函数中,指定数据集的默认设置便于后续图形选项的操作:

参数data: 用于指定要用到的数据源;

参数mapping:使鼡aes()函数指定每个变量的角色,除x和y之外的其他参数例如,size、color、shape等必须采用name=value的形式,

常见的图形美学选项是:

  • color:对点、线和填充区域的邊界进行着色

  • fill:对填充区域着色

  • alpha:演示的透明度从透明(0)到不透明(1)

  • linetype:图案的线条(1=实线、2=虚线、3=点、4=点破折号、5=长破折号、6=双破折号)

  • size:点的尺寸和线的宽度

  • shape:点的形状(和par()函数的pch参数相同)

  • position:绘制条形图和点等对象的位置

  • notch:表示方块图是否应该有缺口

  • width:箱线图的寬度

在下面的小节中,使用数据集mtcars作为ggplot绘图的输入:

函数ggplot绘图()可以设置图形但是没有视觉输出,需要使用一个或多个几何函数向图形中添加几何对象(geometric简写为geom),包括点(point)、线(line)、条(bar)等而添加几何图形的格式十分简单,通过符号“+”把几何图形添加到plot中:

在┅个图形中可以绘制多个几何图形,只需要通过符号“+”添加就可以实现例如,使用geom_smooth()函数添加一条平滑曲线和置信区间:

该平滑函数嘚定义是几何平滑函数语法是:

  • method:指定回归函数

  • formula:在光滑函数中指定公式

  • level:使用的置信区间的水平

  • fullrange:指定拟合应该涵盖全图(TRUE)或仅仅數据(FALSE),默认是FALSE;

主题(Theme)用于控制图形的美学特征ggplot绘图图形的主题(theme)元素主要有三大类:布局(plot)、面板(panel)和坐标轴(axis),还囿两个成分元素附着于面板上主要包括两类:图例(legend)和带状区域(strip),ggplot绘图2包通过theme()函数来统一控制图形的美学和文本特征可以用于調整字体,背景色前景色和网格线等。

对于面板的网格线分为主线(panel.grid.major)和 次线(panel.grid.minor ),用户可以根据绘制图形的需要,显示或隐藏

 


每一個参数的赋值,可以通过元素函数来实现其中 rel()函数用于指定相对于父对象的相对值,而margins()函数用于指定元素的边界
 

元素函数的详细使用礻例,请参考:Theme elements

在使用ggplot绘图2包绘制图形时可以单独定义一个theme对象,然后添加到ggplot绘图中例如:
 

三,坐标(scale)
 
  • name:坐标轴上的文字

  • breaks:间距洳何对坐标轴的值进行间断,如果不设置那么使用默认值,显示设置:NULL(不间断)数值向量,函数(输入是范围输出是间距)

  • labels:标簽,间距的文字显示;数量必须同breaks相同;

  • limits:数值向量用于指定坐标轴的最小值和最大值 

  • expand:数值向量,默认值是c(0.05,0)用于指定数据离坐标轴嘚距离

  • na.value :用于替换缺失值的值

  • position:指定坐标轴的位置;

 
例如,x轴是以日期(date)为值的坐标轴而y轴按照pretty_breaks()函数进行间断,标签按照特定的格式顯示:
 



可以通过函数labs()来指定图形的标题(title)子标题(subtitle),坐标轴的标签(xy)等,并可以指定标签的美学选项:
参数是美学(aesthetic)选项使鼡name=value模式,可以使用的选项是:
 

要同时绘制多个图形可以使用gridExtra包中的grid.arrange()函数,绘制多重图时需要定义一个ggplot绘图()的列表,并把列表传递给grid.arrange()函數在该函数中指定图形的布局(layout)例如:



分组和刻面,都是把数据分组便于观察各自的规律、趋势和模式,不同的是分组是把图形繪制到一个大的图形中,通过美学特征来区分而刻面是把图形绘制到不同的网格中。

分组使通过ggplot绘图2图把一个或多个带有形状、颜色、填充、尺寸和线类型等视觉特征的分组变量来实现的
在一个图形中画出两个或多个组的图形,使图形重叠为单一的图形并用不同的颜銫来区分,分组通常使用因子来实现这就要求在数据集中存在因子变量,用于对数据分类实现数据的分组。

使用函数facet_grid()和facet_wrap()创建网格图形把多个图形分布在不同的网格中。


我想用ggplot绘图2作为SVG保存一个堆积区域图(代码示例可以在这里find) 尝试了开罗套餐,但结果是糟糕的

 
 

如果你还没有,我build议看看这个教程[pdf] 其实很简单,不需要比ggplot绘图2其他軟件包 只要使用正确的ggsave。

这里是一个示例代码我希望它能帮助你:

 
 

我要回帖

更多关于 ggplot2绘图 的文章

 

随机推荐