Advanced Graphs(高级图形)二
当前位置:以往代写 > 其他教程 >Advanced Graphs(高级图形)二
2019-06-14

Advanced Graphs(高级图形)二

Advanced Graphs(高级图形)二

3.组合绘制
R 通过par( ) 可能layout( )函数让多个画图组合成一个总的图表事情变得很简朴.
通过 the par( ) 函数, 你可以包罗选项 mfrow=c(nrows, ncols) 来建设一个通过行填充nrows x ncols 矩阵平面图. mfcol=c(nrows, ncols) 通过列来填充矩阵.

# 4个2行2列布置的图表
attach(mtcars)
par(mfrow=c(2,2))
plot(wt,mpg, main=”Scatterplot of wt vs. mpg”)
plot(wt,disp, main=”Scatterplot of wt vs disp”)
hist(wt, main=”Histogram of wt”)
boxplot(wt, main=”Boxplot of wt”)
Advanced Graphs(高级图形)二

 

# 3行1列布置的3个图表
attach(mtcars)
par(mfrow=c(3,1))
hist(wt)
hist(mpg)
hist(disp)

Advanced Graphs(高级图形)二

 

函数 layout( ) 具有名目layout(mat) 个中
mat 是一个矩阵工具来指定N 个图形绘制位置.
# 一个图形在第一行,两个图形在第二行
attach(mtcars)
layout(matrix(c(1,1,2,3), 2, 2, byrow = TRUE))
hist(wt)
hist(mpg)
hist(disp)
Advanced Graphs(高级图形)二

 
视环境, 你可以包罗widths= 和 heights= 选项在layout( ) 函数中来更精确节制每个图形巨细. 这些选项有名目
widths= 列宽向量值
heights=行高向量值.
数值指定的相关的宽度. 宽度 (厘米) 通过 lcm() 函数指定.
# 一个图形在第一行且两个图形在第二行
# 行1是1/3行2高
# 列2是1/4列1宽
attach(mtcars)
layout(matrix(c(1,1,2,3), 2, 2, byrow = TRUE),
   widths=c(3,1), heights=c(1,2))
hist(wt)
hist(mpg)
hist(disp)
Advanced Graphs(高级图形)二

参考 help(layout) 得到更具体信息.

 

3.1建设紧密节制图形部署
在下面的例子中,两个箱线图添加到散点图里来建设一个加强图形.
# 添加箱线图添加到散点图
par(fig=c(0,0.8,0,0.8), new=TRUE)
plot(mtcars$wt, mtcars$mpg, xlab=”Miles Per Gallon”,
   ylab=”Car Weight”)
par(fig=c(0,0.8,0.55,1), new=TRUE)
boxplot(mtcars$wt, horizontal=TRUE, axes=FALSE)
par(fig=c(0.65,1,0,0.8),new=TRUE)
boxplot(mtcars$mpg, axes=FALSE)
mtext(“Enhanced Scatterplot”, side=3, outer=TRUE, line=-3)
Advanced Graphs(高级图形)二

领略这个图,想象整个图形区域是从 (0,0) 在左下角到 (1,1) 右上角. 名目 fig= 参数是数值向量名目 c(x1, x2, y1, y2). 第一个 fig= 配置散点图在x轴上从0 到 0.8且在y轴上从0 到 0.8. 顶层箱线图在x轴上从0 到 0.8且在y轴上从0.55 到 1. 我选择 0.55 而不是0.8 所以顶上图形会被拉近散点图. 右手边的箱线图x轴上从0.65 到1且在y轴上从0 到 0.8. 再一次, 我选择值拉近右手的箱线图到散点图. 你不得不通过尝试来获得恰如其分的值.
fig= 开始新的绘制, 所以添加到存在的图形用new=TRUE.
你可以用这个来组合几个图形 任意部署成一张图.

 

4.点阵图形
Deepayan Sarkar写的点阵 包, 试图通过提供更好缺省和显示多变量干系本领来提高 R 图形. 出格的, 这包支持建设格子图 – 图形显示在一个或多个变量制约下变量可能变量间干系.
典范的名目是
                   graph_type (formula,data)
个中graph_type是从下列中选出,公式指定显示变量和条件变量. 譬喻~x|A 是指显示x 数值变量对应于每个程度因子A. y~x | A*B 是指别离显示数值变量x和y 相对付程度因子A 和B每种组合. ~x 指单独显示数值变量x.

图形范例

描写

公式例子

barchart

bar chart

x~A or A~x

bwplot

boxplot

x~A or A~x

cloud

3D scatterplot

z~x*y|A

contourplot

3D contour plot

z~x*y

densityplot

kernal density plot

~x|A*B

dotplot

dotplot

~x|A

histogram

histogram

~x

levelplot

3D level plot

z~y*x

parallel

parallel coordinates plot

data frame

splom

scatterplot matrix

data frame

stripplot

strip plots

A~x or x~A

xyplot

scatterplot

y~x|A

wireframe

3D wireframe graph

z~y*x

以下是一些例子. 它们利用在mtcars数据布局中的车辆数据 (英里, 重量, 齿轮数, 气缸数, 等等) .
# Lattice Examples library(lattice)
attach(mtcars)

#p#分页标题#e#

# create factors with value labels
gear.f<-factor(gear,levels=c(3,4,5),
   labels=c(“3gears”,”4gears”,”5gears”))
cyl.f <-factor(cyl,levels=c(4,6,8),
   labels=c(“4cyl”,”6cyl”,”8cyl”))

# kernel density plot
densityplot(~mpg,
   main=”Density Plot”,
   xlab=”Miles per Gallon”)

# kernel density plots by factor level
densityplot(~mpg|cyl.f,
   main=”Density Plot by Number of Cylinders”,
   xlab=”Miles per Gallon”)

#p#分页标题#e#

# kernel density plots by factor level (alternate layout)
densityplot(~mpg|cyl.f,
   main=”Density Plot by Numer of Cylinders”,
    xlab=”Miles per Gallon”,
   layout=c(1,3))

#p#分页标题#e#

# boxplots for each combination of two factors
bwplot(cyl.f~mpg|gear.f,
   ylab=”Cylinders”, xlab=”Miles per Gallon”,
   main=”Mileage by Cylinders and Gears”,
   layout=(c(1,3))

# scatterplots for each combination of two factors
xyplot(mpg~wt|cyl.f*gear.f,
   main=”Scatterplots by Cylinders and Gears”,
   ylab=”Miles per Gallon”, xlab=”Car Weight”)

# 3d scatterplot by factor level
cloud(mpg~wt*qsec|cyl.f,
   main=”3D Scatterplot by Cylinders”)

# dotplot for each combination of two factors
dotplot(cyl.f~mpg|gear.f,
   main=”Dotplot Plot by Number of Gears and Cylinders”,
   xlab=”Miles Per Gallon”)

# scatterplot matrix
splom(mtcars[c(1,3,4,5,6)],
   main=”MTCARS Data”)
Advanced Graphs(高级图形)二Advanced Graphs(高级图形)二Advanced Graphs(高级图形)二Advanced Graphs(高级图形)二

Advanced Graphs(高级图形)二Advanced Graphs(高级图形)二Advanced Graphs(高级图形)二Advanced Graphs(高级图形)二
留意, 在图1中,节制变量是可选的. 图2 和图3不同是操作了机关选项来节制安排面板.

4.1定制点阵图
与根基的R图形差异, 点阵图不受par( ) 函数大大都选项影响. 参照 help(xyplot) 查察那些选项可以改变. 在高层画图函数中,它是经常用来很容易配置上面提到的选项. 别的,你可以编写函数来改变面板底色,以下是个例子.

# Customized Lattice Example
library(lattice)
panel.smoother <- function(x, y) {
  panel.xyplot(x, y) # show points
  panel.loess(x, y)  # show smoothed line
}
attach(mtcars)
hp <- cut(hp,3) # divide horse power into three bands
xyplot(mpg~wt|hp, scales=list(cex=.8, col=”red”),
   panel=panel.smoother,
    xlab=”Weight”, ylab=”Miles per Gallon”,
   main=”MGP vs Weight by Horse Power”)

Advanced Graphs(高级图形)二

 

4.2更进一步
点阵图形是一个拥有特有成果综合图形系统. Deepanyan Sarkar 的书 Lattice: Multivariate Data Visualization with R 是本权威参考. 另外, 参考 Trellis Graphics 主页和 Trellis User’s Guide. Dr. Ihaka 在主题中建设了极好的 set of slides. 可以在 W.S. Cleavland’s 经典书 Visualizing Data中找到早期优秀的网格图.

    关键字:

在线提交作业