目录
一、R语言的基本绘图函数
1、高级绘图函数
(1)plot函数
(2)其他高级绘图函数
2、低级绘图函数
二、图形参数与图形控制
1、绘图参数
2、图形控制
3、图形颜色
(1)颜色名称
(2)颜色集合
(3) 调色板
三、页面布局与图形组合
1、用par函数布局页面
2、用layout函数布局页面
3、同时打开多个绘图窗口
一、R语言的基本绘图函数
1、高级绘图函数
(1)plot函数
data2_1 <- read.csv('D:/mydata/chap02/data2_1.csv')
data2_1$性别 = as.factor(data2_1$性别)
attach(data2_1) # 在内存中绑定数据框par(mfrow=c(2, 2), mai=c(0.6, 0.6, 0.4, 0.4), cex=0.7, cex.main=1, font.main=1)plot(R, Python, main='(a) 散点图')
plot(性别, xlab='性别', main='(b) 条形图')
plot(R~性别, main='(c) 箱线图')
plot(性别~R, main='(d) 脊形图')
par(mfrow=c(2, 2), mai=c(0.6,0.6,0.2,0.1), cex=0.6)
model <- lm(R~Python, data=data2_1)
plot(model)
函数 | 数据类型 | 图形 |
---|---|---|
plot() | 数值 | 散点图 |
plot() | 因子 | 条形图 |
plot() | 一组频数表 | 条形图 |
plot() | 数值、数值 | 散点图 |
plot() | 因子、因子 | 脊形图 |
plot() | 二维列联表 | 马赛克图 |
plot() | 数值、因子 | 箱线图 |
plot() | 因子、数值 | 带状图 |
plot() | 数据框 | 散点图矩阵 |
(2)其他高级绘图函数
函数 | 数据类型 | 图形 |
---|---|---|
assocplot | 二维列联表 | 关联图 |
barplot | 数值向量;矩阵;列联表 | 条形图 |
boxplot | 数值向量;矩阵;数据框 | 箱线图 |
cdplot | 单一数值向量;一个对象 | 条件密度图 |
contour | 数值、数值、数值 | 等高线图 |
coplot | 表达式 | 条件图 |
curve | 表达式 | 曲线 |
dotchart | 数据向量;矩阵 | 点图 |
fourfoldplot | 2*2表 | 四折图 |
函数 | 数据类型 | 图形 |
---|---|---|
hist | 数值向量 | 直方图 |
image | 数值、数值、数值 | 色阵图 |
matplot | 数值向量;矩阵 | 矩阵列图 |
mosaicplot | 二维列联表、N维列联表 | 马赛克图 |
pairs | 矩阵;数据框 | 矩阵散点图 |
persp | 数值、数值、数值 | 三维透视图 |
pie | 非负的数值向量;列联表 | 饼图 |
stars | 矩阵;数据框 | 星图 |
stem | 数值向量 | 茎叶图 |
stripchart | 数值向量;数值向量列表 | 带状图 |
sunflowerplot | 数值向量、因子 | 太阳花图 |
symbols | 数值、数值、数值 | 符号图 |
2、低级绘图函数
函数 | 描述 |
---|---|
abline | 为图形添加截距为a、斜率为b的直线 |
arrows | 在坐标点(x0,y0)和(x1,y1)之间绘制线段,并在端点处添加箭头 |
box | 绘制图形的边框 |
layout | 布局图形页面 |
legend | 在坐标点(x,y)处添加图例 |
lines | 在坐标点(x,y)之间添加直线 |
mtext | 在图形区域的边距或区域的外部边距添加文本 |
points | 在坐标点(x,y)处添加点 |
polygon | 沿着坐标点(x,y)绘制多边形 |
polypath | 绘制由一个或多个连接坐标点的路径组成的多边形 |
resterimaga | 绘制一个或多个网络图像 |
rect | 绘制一个左下角在(xleft,ybottom)处、右下角在(xright,ytop)处的矩形 |
rug | 添加地毯图 |
segments | 在坐标点(x0,y0)和(x1,y1)之间绘制线段 |
text | 在坐标点(x,y)处添加文本 |
title | 为图形添加标题 |
xspline | 根据控制点(x,y)绘制x样条曲线(平滑曲线) |
par(mfrow=c(1,1), mai=c(0.7, 0.7, 0.4, 0.4), cex=0.8)
set.seed(1)
x <- rnorm(200) #产生200个服从正态分布的随机数
y <- 1+2*x+rnorm(200)
d <- data.frame(x, y)
plot(x, y) # 绘制散点图
plot(x, y, xlab='x=自变量', ylab='y=因变量') # 添加坐标轴标题
grid(col='grey60') # 添加网格线
axis(side=4, col.ticks='blue', lty=1) # 绘制坐标轴
polygon(d[chull(d),], lty=6, lwd=1, col='lightgreen') # 添加多边形
points(d) # 重新绘制散点图
points(mean(x), mean(y), pch=19, cex=5, col=2)# 添加均值点
abline(v=mean(x), h=mean(y), lty=2, col='gray30') # 添加均值水平线和垂直线
abline(lm(y~x), lwd=2, col=2) # 添加回归直线
lines(lowess(y~x, f=1/6), col=4, lwd=2, lty=6)# 添加拟合曲线
segments(-0.8, 0, -1.6, 3.3, lty=6, col='blue')# 添加线段
arrows(0.45, -2.2, -0.8, -0.6, code=2, angle=25, length=0.06, col=2) # 添加带箭头的线段
text(-2.2, 3.5, labels=expression('拟合的曲线'), adj=c(-0.1, -0.02),col=4) # 添加注释文本
rect(0.4, -1.6, 1.6, -3.5, col='pink', border='grey60') # 添加矩形
mtext(expression(hat(y)==hat(beta)[0]+hat(beta)[1]*x), cex=0.9, side=1,line=-5.3, adj=0.72) # 添加注释表达式
legend('topleft', legend=c('拟合的直线', '拟合的曲线'), lty=c(1, 6), col=c(2, 4), cex=0.8, fill=c('red', 'blue'), box.col='grey60',ncol=1, inset=0.02) # 添加图例
title('散点图及拟合直线和曲线\n并为图形添加新的元素', cex.main=0.8, font.main=4) # 添加标题并换行,使用斜体字
box(col=4, lwd=2) # 添加边框
二、图形参数与图形控制
1、绘图参数
data2_1 <- read.csv('D:/mydata/chap02/data2_1.csv')
par(mfrow=c(2, 2), mai=c(0.6, 0.6, 0.3, 0.2), cex=0.7, cex.main=1, font.main=1)
barplot(table(data2_1$性别))
title('(a) 默认设置的条形图')# horiz(水平摆放)、density(填充条密度)
barplot(table(data2_1$性别), horiz=TRUE, density=40, col='red', xlab='频数', ylab='性别', main='(b) 修改参数后的条形图')boxplot(R~性别, data=data2_1)
title('(c) 默认设置的箱线图')# varwidth(箱子宽度与样本量平方根呈成比)
boxplot(R~性别, data=data2_1, col=c('lightgreen', 'skyblue'), xlab='性别',ylab='R考试分数', varwidth=TRUE, main='(d) 修改参数后的箱线图')
2、图形控制
library(DescTools)x <- 1:30
y <- sin(pi/10*x)
par(mfrow=c(2,3), mai=c(0.5,0.5,0.2,0.1), cex=0.8, cex.axis=0.6, cex.lab=0.7, mgp=c(2,1,0), cex.main=0.8)
plot(x, y, type='p', main='(a) type="p"', font.main=2, col.main='red')
plot(x, y, tpye='b', pch=21, font.axis=3, font.lab=3, bg='lightgreen', main='(b) type="b"', font.main=3)
plot(x, y, type='o', las=3, pch=0, fg='blue', col.lab='red', main='(c) type="o", font.main=1')
plot(x, y, type='l', lty=2, col='blue', lwd=2, bty='l', main='(d) type="l"')
plot(x, y, type='s', col='grey20', main='(e) type="s"', font.main=4)
plot(x, y, type='h', col='red', lwd=2, col.axis='red', main='(f) type="h"')
3、图形颜色
(1)颜色名称
colors() #查看R颜色名称
[1] "white" "aliceblue" "antiquewhite"
[4] "antiquewhite1" "antiquewhite2" "antiquewhite3"
[7] "antiquewhite4" "aquamarine" "aquamarine1"
[10] "aquamarine2" "aquamarine3" "aquamarine4"
[13] "azure" "azure1" "azure2"
[16] "azure3" "azure4" "beige"
[19] "bisque" "bisque1" "bisque2"
[22] "bisque3" "bisque4" "black"
[25] "blanchedalmond" "blue" "blue1"
[28] "blue2" "blue3" "blue4"
[31] "blueviolet" "brown" "brown1"
[34] "brown2" "brown3" "brown4"
[37] "burlywood" "burlywood1" "burlywood2"
[40] "burlywood3" "burlywood4" "cadetblue"
[43] "cadetblue1" "cadetblue2" "cadetblue3"
[46] "cadetblue4" "chartreuse" "chartreuse1"
[49] "chartreuse2" "chartreuse3" "chartreuse4"
[52] "chocolate" "chocolate1" "chocolate2"
[55] "chocolate3" "chocolate4" "coral"
[58] "coral1" "coral2" "coral3"
[61] "coral4" "cornflowerblue" "cornsilk"
[64] "cornsilk1" "cornsilk2" "cornsilk3"
[67] "cornsilk4" "cyan" "cyan1"
[70] "cyan2" "cyan3" "cyan4"
[73] "darkblue" "darkcyan" "darkgoldenrod"
[76] "darkgoldenrod1" "darkgoldenrod2" "darkgoldenrod3"
[79] "darkgoldenrod4" "darkgray" "darkgreen"
[82] "darkgrey" "darkkhaki" "darkmagenta"
[85] "darkolivegreen" "darkolivegreen1" "darkolivegreen2"
[88] "darkolivegreen3" "darkolivegreen4" "darkorange"
[91] "darkorange1" "darkorange2" "darkorange3"
[94] "darkorange4" "darkorchid" "darkorchid1"
[97] "darkorchid2" "darkorchid3" "darkorchid4"
[100] "darkred" "darksalmon" "darkseagreen"
[103] "darkseagreen1" "darkseagreen2" "darkseagreen3"
[106] "darkseagreen4" "darkslateblue" "darkslategray"
[109] "darkslategray1" "darkslategray2" "darkslategray3"
[112] "darkslategray4" "darkslategrey" "darkturquoise"
[115] "darkviolet" "deeppink" "deeppink1"
[118] "deeppink2" "deeppink3" "deeppink4"
[121] "deepskyblue" "deepskyblue1" "deepskyblue2"
[124] "deepskyblue3" "deepskyblue4" "dimgray"
[127] "dimgrey" "dodgerblue" "dodgerblue1"
[130] "dodgerblue2" "dodgerblue3" "dodgerblue4"
[133] "firebrick" "firebrick1" "firebrick2"
[136] "firebrick3" "firebrick4" "floralwhite"
[139] "forestgreen" "gainsboro" "ghostwhite"
[142] "gold" "gold1" "gold2"
[145] "gold3" "gold4" "goldenrod"
[148] "goldenrod1" "goldenrod2" "goldenrod3"
[151] "goldenrod4" "gray" "gray0"
[154] "gray1" "gray2" "gray3"
[157] "gray4" "gray5" "gray6"
[160] "gray7" "gray8" "gray9"
[163] "gray10" "gray11" "gray12"
[166] "gray13" "gray14" "gray15"
[169] "gray16" "gray17" "gray18"
[172] "gray19" "gray20" "gray21"
[175] "gray22" "gray23" "gray24"
[178] "gray25" "gray26" "gray27"
[181] "gray28" "gray29" "gray30"
[184] "gray31" "gray32" "gray33"
[187] "gray34" "gray35" "gray36"
[190] "gray37" "gray38" "gray39"
[193] "gray40" "gray41" "gray42"
[196] "gray43" "gray44" "gray45"
[199] "gray46" "gray47" "gray48"
[202] "gray49" "gray50" "gray51"
[205] "gray52" "gray53" "gray54"
[208] "gray55" "gray56" "gray57"
[211] "gray58" "gray59" "gray60"
[214] "gray61" "gray62" "gray63"
[217] "gray64" "gray65" "gray66"
[220] "gray67" "gray68" "gray69"
[223] "gray70" "gray71" "gray72"
[226] "gray73" "gray74" "gray75"
[229] "gray76" "gray77" "gray78"
[232] "gray79" "gray80" "gray81"
[235] "gray82" "gray83" "gray84"
[238] "gray85" "gray86" "gray87"
[241] "gray88" "gray89" "gray90"
[244] "gray91" "gray92" "gray93"
[247] "gray94" "gray95" "gray96"
[250] "gray97" "gray98" "gray99"
[253] "gray100" "green" "green1"
[256] "green2" "green3" "green4"
[259] "greenyellow" "grey" "grey0"
[262] "grey1" "grey2" "grey3"
[265] "grey4" "grey5" "grey6"
[268] "grey7" "grey8" "grey9"
[271] "grey10" "grey11" "grey12"
[274] "grey13" "grey14" "grey15"
[277] "grey16" "grey17" "grey18"
[280] "grey19" "grey20" "grey21"
[283] "grey22" "grey23" "grey24"
[286] "grey25" "grey26" "grey27"
[289] "grey28" "grey29" "grey30"
[292] "grey31" "grey32" "grey33"
[295] "grey34" "grey35" "grey36"
[298] "grey37" "grey38" "grey39"
[301] "grey40" "grey41" "grey42"
[304] "grey43" "grey44" "grey45"
[307] "grey46" "grey47" "grey48"
[310] "grey49" "grey50" "grey51"
[313] "grey52" "grey53" "grey54"
[316] "grey55" "grey56" "grey57"
[319] "grey58" "grey59" "grey60"
[322] "grey61" "grey62" "grey63"
[325] "grey64" "grey65" "grey66"
[328] "grey67" "grey68" "grey69"
[331] "grey70" "grey71" "grey72"
[334] "grey73" "grey74" "grey75"
[337] "grey76" "grey77" "grey78"
[340] "grey79" "grey80" "grey81"
[343] "grey82" "grey83" "grey84"
[346] "grey85" "grey86" "grey87"
[349] "grey88" "grey89" "grey90"
[352] "grey91" "grey92" "grey93"
[355] "grey94" "grey95" "grey96"
[358] "grey97" "grey98" "grey99"
[361] "grey100" "honeydew" "honeydew1"
[364] "honeydew2" "honeydew3" "honeydew4"
[367] "hotpink" "hotpink1" "hotpink2"
[370] "hotpink3" "hotpink4" "indianred"
[373] "indianred1" "indianred2" "indianred3"
[376] "indianred4" "ivory" "ivory1"
[379] "ivory2" "ivory3" "ivory4"
[382] "khaki" "khaki1" "khaki2"
[385] "khaki3" "khaki4" "lavender"
[388] "lavenderblush" "lavenderblush1" "lavenderblush2"
[391] "lavenderblush3" "lavenderblush4" "lawngreen"
[394] "lemonchiffon" "lemonchiffon1" "lemonchiffon2"
[397] "lemonchiffon3" "lemonchiffon4" "lightblue"
[400] "lightblue1" "lightblue2" "lightblue3"
[403] "lightblue4" "lightcoral" "lightcyan"
[406] "lightcyan1" "lightcyan2" "lightcyan3"
[409] "lightcyan4" "lightgoldenrod" "lightgoldenrod1"
[412] "lightgoldenrod2" "lightgoldenrod3" "lightgoldenrod4"
[415] "lightgoldenrodyellow" "lightgray" "lightgreen"
[418] "lightgrey" "lightpink" "lightpink1"
[421] "lightpink2" "lightpink3" "lightpink4"
[424] "lightsalmon" "lightsalmon1" "lightsalmon2"
[427] "lightsalmon3" "lightsalmon4" "lightseagreen"
[430] "lightskyblue" "lightskyblue1" "lightskyblue2"
[433] "lightskyblue3" "lightskyblue4" "lightslateblue"
[436] "lightslategray" "lightslategrey" "lightsteelblue"
[439] "lightsteelblue1" "lightsteelblue2" "lightsteelblue3"
[442] "lightsteelblue4" "lightyellow" "lightyellow1"
[445] "lightyellow2" "lightyellow3" "lightyellow4"
[448] "limegreen" "linen" "magenta"
[451] "magenta1" "magenta2" "magenta3"
[454] "magenta4" "maroon" "maroon1"
[457] "maroon2" "maroon3" "maroon4"
[460] "mediumaquamarine" "mediumblue" "mediumorchid"
[463] "mediumorchid1" "mediumorchid2" "mediumorchid3"
[466] "mediumorchid4" "mediumpurple" "mediumpurple1"
[469] "mediumpurple2" "mediumpurple3" "mediumpurple4"
[472] "mediumseagreen" "mediumslateblue" "mediumspringgreen"
[475] "mediumturquoise" "mediumvioletred" "midnightblue"
[478] "mintcream" "mistyrose" "mistyrose1"
[481] "mistyrose2" "mistyrose3" "mistyrose4"
[484] "moccasin" "navajowhite" "navajowhite1"
[487] "navajowhite2" "navajowhite3" "navajowhite4"
[490] "navy" "navyblue" "oldlace"
[493] "olivedrab" "olivedrab1" "olivedrab2"
[496] "olivedrab3" "olivedrab4" "orange"
[499] "orange1" "orange2" "orange3"
[502] "orange4" "orangered" "orangered1"
[505] "orangered2" "orangered3" "orangered4"
[508] "orchid" "orchid1" "orchid2"
[511] "orchid3" "orchid4" "palegoldenrod"
[514] "palegreen" "palegreen1" "palegreen2"
[517] "palegreen3" "palegreen4" "paleturquoise"
[520] "paleturquoise1" "paleturquoise2" "paleturquoise3"
[523] "paleturquoise4" "palevioletred" "palevioletred1"
[526] "palevioletred2" "palevioletred3" "palevioletred4"
[529] "papayawhip" "peachpuff" "peachpuff1"
[532] "peachpuff2" "peachpuff3" "peachpuff4"
[535] "peru" "pink" "pink1"
[538] "pink2" "pink3" "pink4"
[541] "plum" "plum1" "plum2"
[544] "plum3" "plum4" "powderblue"
[547] "purple" "purple1" "purple2"
[550] "purple3" "purple4" "red"
[553] "red1" "red2" "red3"
[556] "red4" "rosybrown" "rosybrown1"
[559] "rosybrown2" "rosybrown3" "rosybrown4"
[562] "royalblue" "royalblue1" "royalblue2"
[565] "royalblue3" "royalblue4" "saddlebrown"
[568] "salmon" "salmon1" "salmon2"
[571] "salmon3" "salmon4" "sandybrown"
[574] "seagreen" "seagreen1" "seagreen2"
[577] "seagreen3" "seagreen4" "seashell"
[580] "seashell1" "seashell2" "seashell3"
[583] "seashell4" "sienna" "sienna1"
[586] "sienna2" "sienna3" "sienna4"
[589] "skyblue" "skyblue1" "skyblue2"
[592] "skyblue3" "skyblue4" "slateblue"
[595] "slateblue1" "slateblue2" "slateblue3"
[598] "slateblue4" "slategray" "slategray1"
[601] "slategray2" "slategray3" "slategray4"
[604] "slategrey" "snow" "snow1"
[607] "snow2" "snow3" "snow4"
[610] "springgreen" "springgreen1" "springgreen2"
[613] "springgreen3" "springgreen4" "steelblue"
[616] "steelblue1" "steelblue2" "steelblue3"
[619] "steelblue4" "tan" "tan1"
[622] "tan2" "tan3" "tan4"
[625] "thistle" "thistle1" "thistle2"
[628] "thistle3" "thistle4" "tomato"
[631] "tomato1" "tomato2" "tomato3"
[634] "tomato4" "turquoise" "turquoise1"
[637] "turquoise2" "turquoise3" "turquoise4"
[640] "violet" "violetred" "violetred1"
[643] "violetred2" "violetred3" "violetred4"
[646] "wheat" "wheat1" "wheat2"
[649] "wheat3" "wheat4" "whitesmoke"
[652] "yellow" "yellow1" "yellow2"
[655] "yellow3" "yellow4" "yellowgreen"
head(colors(), 5);tail(colors(), 5) # 查看前5种和后5种颜色
[1] "white" "aliceblue" "antiquewhite" "antiquewhite1" "antiquewhite2"
[1] "yellow1" "yellow2" "yellow3" "yellow4" "yellowgreen"
x <- 1:10 # 生成1~10的等差数列
a <- c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J') # 生成标签向量
par(mfrow=c(1,2), mai=c(0.4,0.4,0.2,0.2), cex=0.8, cex.axis=0.7, cex.lab=0.8, mgp=c(2,1,0), cex.main=0.8) # 图形参数设置
barplot(x, names=a, col=c('red','green')) # 循环使用2种颜色
barplot(x, names=a, col=1:7) # 重复使用颜色1:7
(2)颜色集合
par(mfrow=c(2,4), mai=c(0.3,0.3,0.2,0.1), cex=0.7, mgp=c(1,1,0), cex.axis=0.7, cex.main=0.8)
x <- 1:10
a <- c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J')
barplot(x, names=a, col=rainbow(10), main='col=rainbow()')
barplot(x, names=a, col=rainbow(10,start=0.4,end=0.5), main='col=rainbow(start=0.4,end=0.5')
barplot(x, names=a, col=heat.colors(10), main='col=heat.colors()')
barplot(x, names=a, col=terrain.colors(10), main='col=terrain.colors()')
barplot(x, names=a, col=topo.colors(10), main='col=topo.colors()')
barplot(x, names=a, col=cm.colors(10), main='col=cm.colors()')
barplot(x, names=a, col=gray.colors(10), main='col=gray.colors()')
barplot(x, names=a, col=colors(256), main='col=colors(256)')
(3) 调色板
library(RColorBrewer)
layout(matrix(c(1,1,2,3), nrow=2, ncol=2), widths=c(2,1)) # 页面布局
par(mai=c(0.1,0.4,0.2,0.1), cex=0.6, cex.main=1) # 图形参数设置
display.brewer.all(type='all') # 展示全部
title(main='(a) 全部') # 添加标题
display.brewer.all(type='qual') # 展示离散型部分
title(main='(b) 离散型部分')
display.brewer.all(type='div')
title(main='(c) 极端值部分')
library(RColorBrewer)
par(mfrow=c(1,3), mai=c(0.1,0.3,0.1,0.1), cex=0.6, cex.main=0.8)
palette1 <- brewer.pal(7, 'Reds') # 7种颜色的红色连续型调色板
palette2 <- brewer.pal(7, 'Set1') # 7种颜色的离散型调色板
palette3 <- brewer.pal(7, 'RdBu') # 7种颜色的红蓝色极端调色板
barplot(1:7, col=palette1)
title(main='(a) 红色连续型调色板')
barplot(1:7, col=palette2)
title(main='(b) 离散型调色板')
barplot(1:7, col=palette3)
title(main='(c) 极端值调色板')
par(mfrow=c(1,1))
barplot(1:7, col=rev(brewer.pal(7, 'Reds'))) # rev函数可以反向排列
三、页面布局与图形组合
1、用par函数布局页面
par(mfrow=c(2,2), mai=c(0.5,0.5,0.3,0.1), cex=0.7, mgp=c(2,1,0), cex.axis=0.8, cex.main=0.8)
set.seed(123) # 设置随机数种子
x <- rnorm(100) # 生成100个标准正态分布随机数
y <- rexp(100) # 生成100个指数分布随机数
plot(x, y, col=sample(c('black','red','blue'), 100, replace=TRUE), main='(a) 散点图')
boxplot(x, y, col=2:3, main='(b) 箱线图')
hist(x, col='orange1', ylab='y', main='(c) 直方图')
barplot(runif(5,10,20), col=2:6, main='(d) 条形图')
2、用layout函数布局页面
# 2行2列的图形矩阵,第2行为1幅图
layout(matrix(c(1,2,3,3), nrow=2, ncol=2, byrow=TRUE), heights=c(2,1))
layout.show(3)
# 2行2列的图形矩阵,第2列为1幅图
layout(matrix(c(1,2,3,3), nrow=2, ncol=2), heights=c(2,1))
layout.show(3)
注:矩阵中非0数字代表绘制图形的顺序,相同数字代表占位符;
”0”代表空缺,不绘制图形;
widths=c(2,1)设置列的宽度比例为2和1;heights=c(1,2)设置行的高度比例为1和2;
nrow和ncol是声明行和列各有多少图层
# 2行3列的图形矩阵,第2行为3幅图
layout(matrix(c(1,1,1,2,3,4),nrow=2,ncol=3,byrow=TRUE), widths = c(3:1), heights = c(2,1))
layout.show(4)
# 3行3列的图形矩阵,第2行为2幅图
layout(matrix(c(1,2,3,4,5,5,6,7,8),3,3,byrow=T), widths = c(2:1), heights = c(1:1))
layout.show(8)
set.seed(12) #set.seed()函数为保证随机产生的随机数前后一致
x <- rnorm(100) #产生100个标准正态分布的随机数
y <- rexp(100) #产生100个指数分布的随机数
layout(matrix(c(1,2,3,4,5,5,6,7,8),3,3,byrow=T), widths = c(2:1), heights = c(1:1))
par(mai=c(0.3,0.3,0.2,0.1), cex.main=0.9)
barplot(runif(8,1,8),col=2:7,main='(a) 条形图')
pie(1:12, col=rainbow(6), labels='', border=NA, main='(b) 饼图')
qqnorm(y, col=1:7, pch=19, xlab='', ylab='',main='(c) Q-Q图')
plot(x, y, pch=19, col=c(1,2,4), xlab='', ylab='', main='(d) 散点图')
plot(rnorm(25), rnorm(25), cex=(y+2), col=2:4, lwd=2, xlab='', ylab='', main='(e) 气泡图')
plot(density(y), col=4, lwd=1, xlab='', ylab='', main='(f) 核密度图')
hist(rnorm(1000), col=3, xlab='', ylab='', main='(g) 直方图')
boxplot(x, col=2, main='(h) 箱线图')
3、同时打开多个绘图窗口
x <- rnorm(1000) # 生成1000个标准正态分布的随机数
hist(x, col = 3, xlab = '', ylab = '', main = '直方图') # 绘制直方图
# dev.new() # 打开一个新的绘图窗口,关闭绘图窗口使用dev.off()
plot(density(x), xlab = '', ylab = '', main = '核密度图') # 绘制核密度图