R绘图命令分为三种类型:

  • 高级绘图命令在图形设备上产生一个新的图区,它可能包括坐标轴,标签,标题等等。
  • 低级画图命令会在一个已经存在的图上加上更多的图形元素,例如额外的点,线和标签。
  • 交互式图形命令允许你交互式的用定点设备(如鼠标)在一个已经存在的图上添加图形信息或者提取图形信息。

基本图库graphics包:
高级绘图函数:
plot函数:

这个函数主要用来画散点图。
因为plot() 函数默认启动一个新的页面,所以你需要禁止该操作,因此设定选项newpage = FALSE。
plot(x,y),plot(xy) 如果x和y是向量,则plot(x,y)将产生y对x的散点图。用包含两个分量x和y的列表或是一个双列的矩阵作为一个参数(第二种形式)也能得到一样的结果
plot(x) 如果x是一个时间序列,这将产生一个时间序列图。如果x是一个数值向量,它将产生一个向量值对该向量索引的图。如果x是一个复向量,它将会产生一个向量元素的虚部对实部的图
plot(f),plot(f,y) f是一个因子对象,y是一个数值向量。第一种形式产生f的直方图;第二种形式残生y在f各水平下的盒状图。
plot(df),plot(~expr),
plot(y~expr)
df是一个数据框,y是任何对象,expr是一个对象被‘+’分割的表列(如,a+b+c)。前两种将产生数据框中变量的分布图(第一种形式)和一系列制定对象的分布图(第二种形式),第三种形式将得到y相对expr中各个对象画的图。
plot(graph)
graph是一副已经保存下来的图,例如:
graph <- densityplot(~height,data = singer,groups = voice.part,
plot.points = F,auto.key = list(columns = 4))
plot(graph)
pairs函数:
可以用来显示多元变量两两间的关系。
R 为描绘多元数据提供了两个非常有用的函数。如果 X 是一个数值矩阵或者数据框,命令
> pairs(X)
将产生X 的列之间两两相对的成对散点图阵列( pairwise scatterplot matrix)。也就是说,X的每一列相对 X 的所有其他列而产生
n(n -1) 个图,并且把这些图以阵列个形式显示在图区。这个图形阵列的行列图形尺度一致。
coplot函数,这个函数也是可以用来处理多个变量的,产生描述多变量的图。

coplot(a~b|c) a,b是数值向量,c是数值向量或因子对象。将产生一系列在给定c值下a对b的散点图。c是因子对象,这就简单表示a在c各个水平下对b画的散点图。当c是数值向量,它将会被分割成一系列条件区间,对任一区间,区间内c对应a,b值将绘制a对b的散点图。
coplot(a~b|c+d) 产生任何在c和d联合区间内的a对b的散点图。
hist(x,nclass=n,breaks=b)函数参数说明(用来产生柱状图):
prob=T:设置参数prob=T,我们可以得到每个取值区间的概率,如果该参数设置为FALSE或者忽略该参数,它将给出频数;
xlab='':设置图像横坐标名称;
main='':设置图像上方显示的标题;
ylim=0:1 :设置纵坐标的范围,这里设置为(0,1);
产生数值向量x的柱状分布图。程序会自动选择合适的分类数目,但可以通过设定参数nclass=来改变分类数。还有一种方法是,通过参数breaks=精确设置断点。如果设定参数probability=TRUE,柱高度将表示频率而不是频数。
ts.plot(x_1,x_2...):
在一个形同的尺度里绘制任意数目的时间序列。在x_i都是一般数值向量时,这种自动的同步标化的特性依然很有用。这时,它们相对1,2,3,...绘制。
例子:
ts.plot(ldeaths, mdeaths, fdeaths, gpars=list(xlab="year", ylab="deaths", lty=c(1:3)))

stats::qqnorm(x),stats:: qqline(x),stats:: qqplot(x,y):

分位比较图。第一种形式显示数值向量x相对期望的正态有序分值的比较图(正态分值图);第二种形式是在这个图上加一条理论上的分位对分位的直线。第三种形式产生x的分为对y的分位的图以比较二者是否同分布。
对qqnorm(x)单独说明:
例如:
> x<-rnorm(20)
> qqnorm(x)

x产生了20个点之后,按顺序排列,纵坐标是x的取值,横坐标第一个数字是1/40的分位数接着是3/40的分位数,一直到39/40的分位数,qnorm(1/40)...qnorm(39/40)。

dotchart(x,...)
产生数据x的点图。在一个点图里面,y-轴给定x里面数据的标签,x-轴给出它们的值。这种图非常容易从视觉上看出在某个特定范围内的数据元素。
例子:
> VADeaths
Rural Male Rural Female Urban Male Urban Female
50-54 11.7 8.7 15.4 8.4
55-59 18.1 11.7 24.3 13.6
60-64 26.9 20.3 37.0 19.3
65-69 41.0 30.9 54.6 35.1
70-74 66.0 54.3 71.1 50.0
> dotchart(VADeaths, main = "Death Rates in Virginia - 1940")
image(x),contour(x),persp(x):
x是一个数值矩阵,image产生一个长方形网格,用不同的颜色表示x的值,contour以等高线来表示x的值,persp产生3D表面。
例如:
> volcano[1:10,1:10]
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 100 100 101 101 101 101 101 100 100 100
[2,] 101 101 102 102 102 102 102 101 101 101
[3,] 102 102 103 103 103 103 103 102 102 102
[4,] 103 103 104 104 104 104 104 103 103 103
[5,] 104 104 105 105 105 105 105 104 104 103
[6,] 105 105 105 106 106 106 106 105 105 104
[7,] 105 106 106 107 107 107 107 106 106 105
[8,] 106 107 107 108 108 108 108 107 107 106
[9,] 107 108 108 109 109 109 109 108 108 107
[10,] 108 109 109 110 110 110 110 109 109 108
> image(volcano)

> contour(volcano)

> persp(volcano)
smoothScatter()函数
这个函数可以用来做密度图,如果数据太多,做散点图就会混成一团,使用smoothScatter函数,用颜色来区分密度。
例如:
smoothScatter(data_entertainment)
输出:
plot.new()
新建一个空白的窗口。
curve()函数:
这个函数用来画曲线,例子如下:
f <- function(x){return(1-exp(-x))}
curve(f,0,2)
表示画一条f的曲线,曲线的定义域是0到2.
 

低级画图函数:

stats::density(algae$mxPH,na.rm=T) 核密度函数,作用是假设数据服从某个密度分布,此函数结合lines()函数,能够将数据描绘成一个光滑的密度分布曲线。
> d <- density(faithful$eruptions, bw = "sj")
> plot(d,type="n")

> lines(d)
stats::lowess()
lowess() 函数则用来添加一条平滑曲线 。 该 平 滑 曲 线 拟 合 是 一 种 基 于 局 部 加 权 多 项 式 回 归 的 非 参 数 方 法
也是和lines函数配合使用
lines(lowess(wt,mpg),col = "blue",lwd = 2,lty = 2)
rug(x)一个低级图形函数,将x中所有的数据映射到坐标轴上:
size=1:参数(1 到4, 从底部顺时钟方式数)定义的某一侧增加一个坐标轴。
abline()低级图形函数,在图中画一条线,参数列表:
lty=1:线的样式;
points(x,y):
在当前图上增加点。
> points(c(1,2,3,4),rep(0.5,4))
lines(x,y):
在当前图上增加连接线。
text(x,y,labels,...):
在图上给定x,y位置添加文字。labels经常是整数或者字符向量,此时,labels[i]放置在(x[i],y[i])处
abline(a,b),abline(h=y),abline(v=x),abline(lm.obj):
abline(a,b),:在当前图上增加一条斜率为b截距为a的直线。
abline(h=y):画一条水平线。
abline(v=x):画一条垂线。
abline(lm.obj):画一条拟合直线。
polygon(x,y):
绘制由(x,y)作为顶点的多边形。这个函数还能设置多边形内的填充颜色和边界的颜色
legend(x,y,legend):
在当前图的特定位置增加图例。
title(main,sub):
将main定义的标题以大字体的形式放在当前图的顶部,同时可以将sub定义的小标题以小字体的形式放在下部。
axis(side ,...):
定制坐标轴。
在第一个参数(1到4,从底部顺时针方式数),定义的某一侧增加一个坐标轴。另一个参数控制坐标轴相对图区的位置,刻度位置和标签位置。这对调用参数设置axis=FALSE的plot()函数后增加定制的坐标轴非常有用。
box():

这个函数可以在当前图像上画一个长方形。
 
 
交互式图形命令:
identify(x,y):
可以在图上记录下鼠标点击的位置。
例子:
plot(x,y)
identify(x,y)
输入后点击图片,保存,图片就会记录下鼠标的点击位置。
locator(n,type):
等待用户用鼠标左键点击当前图上特定位置。这个过程直到n个点被选择,或者另外一个鼠标键被点击了。参数type允许在被选择的点上画图并且有高级画图命令一样的效果,默认情况下不能画图。locator()以双分量x和y的列表形式返回所选中点的位置。
例如:
>po<-locator(1)

点击图像上一次后,po会记录下点击的位置。
 
par()函数及其参数说明:
函数在此次会话过程中,永久的改变图形界面:
par函数详解:
par()函数是R里有关绘图的重要函数之一,以下是对par()函数说明内容的一些整理。
描述:
par函数用于设定或询问绘图参数。参数设定可通过par(参数名 = 取值)或par(赋值参数列表)的形式进。
用法:
par(..., no.readonly = FALSE)
函数变量:
... “参数名 = 取值”或“赋值参数列表”形式的变量。
no.readonly 逻辑变量。如= TRUE且没有其他变量, 则返回当前绘图设备下已设定好的绘图参数。
参数:
参数分为三类:
一、仅仅用于询问不能被设定的参数:cin,cra,csi,cxy,dim。
二、仅能通过par()设定参数:ask,fig,fin,lheight,mai,mar,mex,mfcol,mfrow,mfg,new,oma,omd,omi,pin,plt,ps,pty,usr,xlog,ylog。
三、除了par(),也能在其他高级绘图函数中设定的参数。
应用中,涉及这三类参数最多的是第三类,最少的是第一类。
查看当前参数的赋值用par("参数名")

第三类参数:

adj 调整函数text,mtext,title里文本串的位置。= 0:文本串左对齐;= 0.5(缺省):文本串 居中;= 1:文本串右对齐。
ann = FALSE:不进行绘图解释标记(例如横轴标题等)。
bg 设置绘图区背景色。缺省为bg = "transparent"。
bty 设置绘图边框的形式。= "o"(缺省):四周边框;= "l":左下边框;= "7":右上边框;= "c":上左 下边框;= "u":左下右边框;= "]":上右下边框;= "n";无边框。
cex 设置文本和符合的尺度。缺省为cex = 1。
cex.axis 相对于当前的cex设置,放大坐标标记(坐标轴标记的数字)。缺省为cex.axis = 1。
cex.lab 相对于当前的cex设置,放大坐标轴标题。缺省为cex.lab = 1。
cex.main 相对于当前的cex设置,放大图标题。缺省为cex.main = 1。
cex.sub 相对于当前的cex设置,放大图副标题。缺省为cex.sub = 1。
col 设置绘图颜色。缺省为col = "black"。
col.axis 设置坐标标记颜色。缺省为col.axis = "black"。
col.lab 设置坐标轴标题颜色。缺省为col.lab = "black"。
col.main 设置图标题颜色。缺省为col.main = "black"。
col.sub 设置图副标题颜色。缺省为col.sub = "black"。
crt 缺省为crt = 0。
err 期望的错误报告程度(像该参数目前在R中未生效)。缺省为err = 0。
family 设置文本字体字体族。缺省为family = ""。
fg 设置前景色,主要用于坐标轴,边框,图形等,对坐标标记与坐标轴标题等外围无影响。缺省 为fg = "black"。
font 设置文本字体。= 1(缺省):普通字体;= 2:粗体;= 3:斜体;= 4:粗斜体;...。
font.axis 设置坐标标记字体。
font.lab 设置坐标轴标题字体。
font.main 设置图标题字体。
font.sub 设置图副标题字体。
lab 设置坐标轴刻度数,lab = c(x,y,len)形式,目前len的设置在R中未生效。缺省为lab = c(5,5,7)。
las 设置坐标标记显示方向。= 0(缺省):平行于坐标轴;= 1:平行于x轴;= 2:垂直于坐标 轴;= 3:平行于y轴。
lend 设置线结束端的形状(只有把线画很粗才能看出来)。= 0(缺省):圆形;= 1:“短”方 形;= 2:“长”方形。
ljoin 设置线交接处的性质(只有把线画很粗才能看出来)。= 0(缺省):圆角;= 1:方角;= 2:切方角顶角。
lmitre 设置ljoin里方角向切方角顶角过渡的程度。缺省为lmitre = 10。
lty 设置线的类型。= 0:空白;= 1:(缺省)实线;= 2:短线虚线;= 3:点虚线;= 4:短线点 虚线;= 5:长线虚线;= 6:长短线虚线。
lwd 设置线宽。缺省为lwd = 1。
mgp 设置坐标轴标题,坐标标记和坐标轴边界宽度。mgp[1]影响坐标轴标题,mgp[2,3]影响坐标标 记和坐标轴。缺省为mgp = c(3,1,0)。
pch
设置点的类型。缺省为pch = 1。
srt 逆时针选择字符串,单位为°,只用于text函数。缺省srt = 0。
tck 设置坐标刻度线长与方向(与图宽和高的较小者成比例)。缺省为tck = "NA"。
tcl 设置坐标刻度线长与方向(与文本行高成比例)。缺省为tcl = -0.5。
xaxs,yaxs 设置坐标轴的范围。= "r"(缺省):先将数据范围向双边扩大4%,然后绘图;= "i":在原始 数据范围内绘图。
xaxt,yaxt 设置坐标轴样式。= "s"(缺省):标准样式;= "n":不绘坐标轴。
 
第二类函数:
ask = TRUE:在新图绘制前进行提示。
fig 设定图在绘图设备中的位置,fig = c(x1,x2,y1,y2)的数值向量(0<=x1<x2<=1; 0<=y1<y2<=1)。缺省为fig = c(0,1,0,1)。(注:设定即开始新的绘图)
fin 设定绘图区的宽和高。缺省为fin = c(6.999999,6.999999)。(注:设定即开始新的绘图)
lheight 设置文本行高。缺省为lheight = 1。
mai 设置图形空白边界,mai =c(bottom, left, top, right),单位为英寸。缺省 为mai = c(1.02,0.82,0.82,0.42)。
mar 设置图形空白边界行数,mar = c(bottom, left, top, right)。缺省为mar = c(5.1,4.1,4.1,2.1)。
mex 设置图形空白边界尺度。缺省为mex = 1。
mfcol,mfrow 设置小图数量与位置,取值为数值型向量c(nr, nc)形式,表示把图分为nr行nc列个小图,图 形顺序按列排(mfcol)或按行排(mfrow)。
mfg 设置工作小图,mfg = c(i,j),表示把第i行第j列的小图设为当前工作小图。(需在mfcol 或mfrow使用后才能使用该参数)
new = TRUE:下一高水平绘图指令不会清楚已绘的图,而是在原有图基础上继续绘新图。
oma 设定图形的外边界大小,oma = c(bottom,left,to,right),单位为文本行数。缺省为oma = c(0,0,0,0)
omd 设定图形外边界内部占图形设备的比例,omd = c(x1,x2,y1,y2)。缺省为omd = c(0,1,0,1)。
omi 设定图形的外边界大小,omi = c(bottom,left,to,right),单位为英寸。缺省为oma = c(0,0,0,0)
pin 设定当前图的长宽,pin = c(width,height)。
plt 设定绘图区(plot region)占图形区(figure region)的比例,plt=c(x1,x2,y1,y2)。
ps 设置文本点的大小。缺省为ps = 12。
pty 设置作图类型。= “m”(缺省):最大化作图;= “s":方形图。
usr 设置图的坐标范围,usr = c(x1,x2,y1,y2),即横坐标在x1到x2之间,纵坐标在y1到y2之间。若xlog或ylog参数为TRUE,则usr设置的点按10^c(x1,x2,y1,y2)使用。
xlog = TRUE:横坐标取对数。
ylog = TRUE:纵坐标取对数。

高级绘图函数(可以产生窗口):

 

scatterplot3d包:
scatterplot3d函数用来绘制三维散点图:

例子:
> x<-rnorm(100)
> y<-rnorm(100)
> z<-rnorm(100)
> scatterplot3d(x,y,z)


ggplot2包
ggplot2网站: http://had.co.nz/ggplot2/
ggplot2 包提供了一个基于全面而连贯的语法的绘图系统。它弥补了R中创建图形缺乏一致性的缺点,使得用户可以创建有创新性的、新颖的图形类型。
ggplot2 中最简单的绘图方式是利用qplot() 函数,即快速绘图函数。格式为:
qplot(x, y,data=,color=,shape=,size=,alpha=,geom=,method=,formula=,facets=,xlim=,ylim=,xlab=,ylab=,main=,sub=)
下表列出了上述参数/选项的定义。
qplot选项
选项
描述
alpha 元素重叠的alpha透明度,数值为0(完全透明)到1(完全不透明)间的分数
color、shape、size、fill 把变量的水平与符号颜色、形状或大小联系起来。对于直线图, color将把线条颜色与变量水平联系起来,对于密度图和箱线图, fill将把填充颜色与变量联系起来。图例将会被自动绘制
data 指定一个数据框
facets 指定条件变量,创建一个栅栏图。表达式如rowvar ~ colvar(示例见图16-10)。为创建一个基于单条件变量的栅栏图,可用rowvar ~ .或. ~ colvar
geom 设定定义图形类型的几何形状。 geom选项是一个单条目或多条目的字符型向量,包 括 "point" 、 "smooth" 、 "boxplot" 、 "line" 、 "histogram" 、"density" 、 "bar" 和"jitter"
main、sub 字符向量,设定标题和副标题
method、formula 若geom = "smooth" ,则会默认添加一条平滑拟合曲线和置信区间。 当观测数大于1000时,便需要调用更高效的平滑拟合算法。方法包括回归lm、广义可加模型gam、稳健回归rlm。 formula参数指定拟合的形式例如,要添加简单的回归曲线,则设定geom = "smooth", method = "lm",formula = y ~ x。将表达式改为y ~ poly(x, 2) 将生成二次拟合。注意表达式使用的是字母x和y,而不是变量的名称对于method = "gam" ,一定要记得加载mgcv包。对于method = "rml" ,则需加载MASS包
x、y 指定摆放在水平轴和竖直轴的变量。对于单变量图形(如直方图),则省略y
xlab、ylab 字符向量,设定横轴和纵轴标签
xlim、ylim 二元素数值型向量,分别指定横轴和纵轴的最小值和最大值

r绘图基本的更多相关文章

  1. 基础R绘图

    前言: 在前面介绍了R的基础入门语法之后,现也将最近整理好的一些R的基础绘图实例提供给需要的朋友参考.(温馨提示:代码慎用!按照本博文实例进行练习的话最好能做到举一反三.代码多敲方为上策,切不可隔岸观 ...

  2. R绘图基础

    一,布局 R绘图所占的区域,被分成两大部分,一是外围边距,一是绘图区域. 外围边距可使用par()函数中的oma来进行设置.比如oma=c(4,3,2,1),就是指外围边距分别为下边距:4行,左边距3 ...

  3. R绘图字体解决方案(转)

    COS论坛里面经常会遇到的一个问题就是绘图时中文字体怎么解决.最初,一个流行的方法是使用family = "GB1",但一般这样做出来的图比较难看,而且并没有完全解决问题.后来发现 ...

  4. R绘图 第十二篇:散点图(高级)

    散点图用于描述两个连续性变量间的关系,三个变量之间的关系可以通过3D图形或气泡来展示,多个变量之间的两两关系可以通过散点图矩阵来展示. 一,添加了最佳拟合曲线的散点图 使用基础函数plot(x,y)来 ...

  5. CentOS6.5下实现R绘图

    1.首先安装R的绘图包Cairo 下载地址:http://www.rforge.net/Cairo/files/ [root@Hadoop-NN-01 mysofts]# R CMD INSTALL ...

  6. R绘图 第五篇:绘制散点图(ggplot2)

    ggplot2包中绘制点图的函数有两个:geom_point和 geom_dotplot,当使用geom_dotplot绘图时,point的形状是dot,不能改变点的形状,因此,geom_dotplo ...

  7. R绘图系统中的坐标系

    在R语言中,对于图中的点来说,有很多种坐标系来进行定位 举个例子: par(omi = c(1, 1, 1, 1), mai = c(1, 1, 1, 1), mfrow = c(1, 2)) plo ...

  8. R绘图系统边框详解

    在R语言的基础绘图系统中,有plot, figure, outer, inner 共4种边框: 这四种边框实际上明确了整个绘图设备的布局 1) outer,  当我们声明一个绘图设备的时候,outer ...

  9. R绘图(2): 离散/分类变量如何画热图/方块图

    相信很多人都看到过上面这种方块图,有点像"华夫饼图"的升级版,也有点像"热图"的离散版.我在一些临床多组学的文章里面看到过好几次这种图,用它来展示病人的临床信息 ...

随机推荐

  1. Python 列表 pop() 方法

    描述 Python 列表 pop() 方法通过指定元素的索引值来移除列表中的某个元素(默认是最后一个元素),并且返回该元素的值,如果列表为空或者索引值超出范围会报一个异常. 语法 pop() 方法语法 ...

  2. chromedriver 下载地址

    重要的事情说三遍 chromedriver 下载地址 chromedriver 下载地址 chromedriver 下载地址 http://chromedriver.storage.googleapi ...

  3. jenkins 执行远程linux命令

    在Jenkins中进行构建时,可能需要首先SSH登录到一个远程服务器以执行必要的脚本,然后再执行构建.这时,需要安装SSH Plugin,并进行如下配置.1.在Jenkins界面,系统管理->管 ...

  4. python函数中参数是如何传递的?

    python中一切皆对象,函数中参数传递的是对象的引用. 1在函数中改变变量指向的对象,即指向不同对象. 当在函数中修改传递进来的变量指向另一个对象时,实参的对象不会改变. >>> ...

  5. ps曲线

    >>曲线的基本原理. 输入:在坐标的底部横着的是输入,显示的是当前图片上的颜色信息. 输出:竖着的是输出线,使我们调整图片的输出结果. 输入和输出轴上都有一条明暗信息,告诉我们那边是阴影那 ...

  6. JS 中document.URL 和 windows.location.href 的区别

    实际上,document 和 windows 这两个对象的区别已经包含了这个问题的答案. document 表示的是一个文档对象,windows 表示一个窗口对象.  一个窗口下面可以有很多的docu ...

  7. js判断输入是否为数字的具体实例

    这篇文章介绍了js判断输入是否为数字的具体实例,有需要的朋友可以参考一下 <html xmlns="http://www.3lian.com/"> <head&g ...

  8. DPDK

    Intel DPDK 全面解读   高性能网络技术 随着云计算产业的异军突起,网络技术的不断创新,越来越多的网络设备基础架构逐步向基于通用处理器平台的架构方向融合,从传统的物理网络到虚拟网络,从扁平化 ...

  9. [sql]大型网站MySQL深度优化揭秘

    大型网站MySQL深度优化揭秘 第1章优化的思路和线路 1.1 网站优化的思路    2 1.2 MySQL优化,nginx这样的东西怎么优化? 第2章硬件层面优化 2.1 数据库物理机 2.1.1 ...

  10. 【Android】20.0 第20章 音频、视频、拍照、语音合成

    分类:C#.Android.VS2015: 创建日期:2016-03-11 一.简介 Android提供了常见的多媒体文件编码.解码机制,你可以直接调用Android提供的API,实现相册.播放器.录 ...