R格包

作者: RaoZC | 来源:发表于2019-02-27 02:11 被阅读0次

格包(lattice package),主要用于对各种高维数据进行绘图。
这个绘图过程由一个默认的面板函数完成,例如panel.densityplot,panel.histogram等。

1. 可以使用的高级函数

*histogram()             直方图
*bwplot()                箱线图
*dotplot()               克利夫兰点图
*xyplot()                条形图
densityplot()            核密度图
qqmath()                 理论分位数图
qq()                     双样本分位数图
stripplot()              带形图
splom()                  散点图
contourplot()            表面等高线图
levelplot()              表面伪色彩图
wireframe()              三维表面透视图
cloud()                  三维散点图
parallel()               平行坐标图

高级格函数最显著的特点就是公式的使用(y~x),表示y轴和x轴,公式中有一个垂直线“|”,叫做管符号,已经data参数。

xyplot(y~x|z, data=n)        这是最简单的格函数模式

2. 具体使用方法

2.1 多面板直方图 histogram()

格包中的histogram用于绘制多面板直方图,以下举例说明。使用的数据如下:

数据

输入下列命令,画出直方图

env=read.table("RIKZENV.txt",header = T)
library(lattice)
histogram(~SAL|Station, 
          data=env,
          subset=(Area=="OS"),     仅仅呈现其中OS区域的数据
          layout=c(1,4),           图形组合为1列4行
          nint=100,                将条形的数目增加到100,密度增加
          xlab="Salinity",
          strip=FALSE,             取消上面的带状名称
          strip.left=TRUE,         将带状名称移动到面板右边
          ylab="Frequencies"
          )

结果如下图:

histogram
2.2 多面板密度图 densityplot()

完全使用上述histogram的data和参数

densityplot(...)

结果如下:


densityplot
2.3 qq图qqmath()

qqmath用于绘制QQ图,就是分位数-分位数图,作用是将一组连续数据的分布和一种理论分布进行比较,完全使用上述histogram的data和参数

qqmath(...)

结果如下:


qqmath
2.4 多面板盒形图bwplot()

单面板就是boxplot(),而在lattice里对应的多面板盒形图就是bwplot()
我们继续用上面的数据env

bwplot(SAL~factor(Month)|Area, 
       data=env,
       strip=strip.custom(bg="lightgreen"),      条形名称的颜色
       xlab="Month",
       ylab="Salinity",
       layout=c(2,5),
       cex=0.2,                                  中值点大小
       par.settings=list(
           box.rectangle=list(co1=3),            不知道什么的颜色
           box.umbrella=list(col=6),             极值线的颜色
           plot.symbol=list(cex=0.8,col=2)       奇异点大小,颜色
           )
       )

结果如下:

多面板盒子图
2.5 多面板散点图: xyplot

继续使用上面的数据

env$Mytime=env$Year+env$dDay3/365
xyplot(SAL~Mytime|factor(Station),
       data=env
       type="l",                        将点用line连起来
       strip=function(bg,...),
       strip.default(bg='blue',...),
       col.line=4
       lwd=1.5                          线宽
       )

type还可以有多个选项,常用的有:
type="r",增加一条回归线“regress”
type="smooth",增加一个LOESS拟合
type="g",增加网格“grid”
type="a",将面板中每组均值“average”用线连起来
结果如下:

xyplot
2.6 多面板克利夫兰点图:dotplot

单面板的克利夫兰点图是dotchart(),而lattice里对应的是dotplot()

dotplot(factor(Month)~SAL|Station,  
        subset=(Area=="OS"),
        jitter.x=TRUE,                    当多个观察值在同一月份具有相同值的时候,对水平方向增加少许随机变化
        col=1,
        strip=strip.custom(bg="white"),
        cex=0.5,
        ylab="Month",
        xlab="Salinity",
        data=env
        )

结果如下:

dotplot

未完待续。

相关文章

网友评论

      本文标题:R格包

      本文链接:https://www.haomeiwen.com/subject/rwutuqtx.html