plot:可用于创建多种类型的图形
plot(x, y, type = "p", ...)
参数
x:要绘制的数据的x轴坐标。
y:要绘制的数据的y轴坐标。
type:要绘制的图形类型。常见的值包括:
"p":散点图(默认值)。
"l":线图。
"b":线图和散点图(同时显示)。
"h":步进图。
"s":阶梯图。
"n":不绘制图形,只创建绘图区域。
(1)绘制散点图
x <- c(1, 2, 3, 4, 5) y <- c(2, 4, 6, 8, 10) plot(x, y, type = "p", main = "Scatter Plot", xlab = "X", ylab = "Y")
(2)绘制线图
x <- c(1, 2, 3, 4, 5) y <- c(2, 4, 6, 8, 10) plot(x, y, type = "l", main = "Line Plot", xlab = "X", ylab = "Y")
(3)绘制柱状图
x <- c("A", "B", "C", "D") y <- c(10, 15, 7, 12) plot(x, y, type = "b", main = "Bar Chart", xlab = "Categories", ylab = "Values") #这里会出现报错 #plot()函数默认将输入数据视为数值型,在尝试绘制非数值型数据时会导致错误 #可以使用barplot() x <- c("A", "B", "C", "D") y <- c(10, 15, 7, 12) barplot(y, names.arg = x, main = "Bar Chart", xlab = "Categories", ylab = "Values")
dev.new():新建画板
> dev.new() NULL > x <- c("A", "B", "C", "D") > y <- c(10, 15, 7, 12) > > barplot(y, names.arg = x, main = "Bar Chart", xlab = "Categories", ylab = "Values") > >
hist:绘制直方图
参数
x:要创建直方图的数据向量或数值矩阵。
breaks:用于控制直方图的分箱数目。可以是一个整数来指定分箱的数量,也可以是一个向量来指定分箱的边界。
freq:一个逻辑值,指示是否绘制直方图的频率(默认为TRUE)。如果设置为FALSE,则绘制密度图。
probability:一个逻辑值,指示是否绘制概率密度直方图(默认为FALSE)。如果设置为TRUE,则纵轴将标准化为表示密度而不是计数。(必要时要将prob=TRUE,这样折线才明显)
include.lowest:一个逻辑值,指示是否包含第一个分箱区间的左边界(默认为TRUE)。
right:一个逻辑值,指示分箱区间是否包含右边界,默认为TRUE。如果设置为FALSE,则分箱区间是左开右闭的。
density:一个逻辑值,指示是否绘制概率密度线(默认为NULL)。
angle:控制直方图的画板角度,默认为45度。
col:直方图的填充颜色。
border:直方图的边框颜色。
main:直方图的标题。
xlab:x轴的标签。
ylab:y轴的标签。
# 创建一个向量作为示例数据 data <- c(22, 34, 16, 28, 30, 20, 24, 18, 21, 31) # 使用一些常用参数来自定义直方图的外观 hist(data, breaks = 5, # 分成5个分箱 col = "blue", # 设置直方图的填充颜色为蓝色 border = "white", # 设置直方图的边界颜色为白色 main = "Histogram", # 设置直方图的标题 xlab = "Values", # 设置x轴标签 ylab = "Frequency" # 设置y轴标签 )
dotchart:绘制点图的函数
参数
x: 表示要绘制点图的数值向量。
labels: 表示与每个数值对应的类别名称的向量。
groups: 表示对数据进行分组的因子或向量。可以根据分组对点图进行着色。
color: 表示点的颜色。可以是一个预定义的颜色名称或颜色代码。
pch: 表示点的形状。可以是一个整数或字符,代表不同的形状。
cex: 表示点的大小。可以是一个数值,指定点的放大倍数。
main: 表示点图的标题。
xlab: 表示x轴的标签。
ylab: 表示y轴的标签。
xlim: 表示x轴的范围。
ylim: 表示y轴的范围。
# 创建数据 categories <- c("Category A", "Category B", "Category C", "Category D") values <- c(10, 15, 7, 12) # 使用dotchart绘制点图 dotchart(values, labels = categories, main = "Dot Chart", xlab = "Values")
pie:绘制饼图
参数
x: 表示要绘制饼图的数值向量。
labels: 表示与每个数值对应的类别名称的向量。如果指定了该参数,那么标签将显示在饼图中的每个扇区旁边。
main: 表示饼图的标题。
col: 表示饼图的颜色向量。可以是一个预定义的颜色名称向量或自定义颜色代码向量。
border: 表示饼图扇区的边界颜色。可以是一个颜色名称或颜色代码。
clockwise: 表示饼图绘制的方向。默认为TRUE,表示顺时针绘制;设为FALSE时表示逆时针绘制。
init.angle: 表示饼图开始绘制的角度,默认为90度,即从12点钟方向开始绘制。
labels.dist: 表示标签离饼图的距离。可以是一个数值,单位为“像素”(px),或一个比例。
labels.bg: 表示标签的背景色。可以是一个颜色名称或颜色代码,用于填充标签的背景。
radius: 表示饼图的半径,可以是一个数值或一个比例。
pair:绘制散点图矩阵
参数
x: 数据框或矩阵,包含要绘制散点图矩阵的变量。
labels: 变量名的向量,用于显示在散点图矩阵中每个小图的轴标签上。
pch: 散点的形状,默认为1(圆点)。可以是一个整数或字符向量,用于指定不同形状的点。
col: 散点的颜色,默认为黑色。可以是一个颜色名称或颜色代码向量,用于指定不同颜色的点。
bg: 散点的填充颜色,默认为空。可以是一个颜色名称或颜色代码向量,用于指定点的填充颜色。
cex: 散点的大小,默认为1。可以是一个数值或数值向量,用于指定不同大小的点。
main: 散点图矩阵的主标题。
sub: 散点图矩阵的副标题。
lower.panel: 一个函数,用于自定义非对角线上每个小图的绘制内容。
upper.panel: 一个函数,用于自定义非对角线上每个小图的绘制内容。
diag.panel: 一个函数,用于自定义对角线上每个小图的绘制内容。
# 创建数据 data <- iris[, 1:4] # 使用鸢尾花数据集的前四列作为示例数据 # 使用pair()绘制散点图矩阵 pairs(data)
boxplot:绘制箱线图
x:要创建箱线图的数据向量或数值矩阵。
horizontal:一个逻辑值,指示是否绘制水平箱线图(默认为FALSE)。如果设置为TRUE,则绘制水平箱线图。
notch:一个逻辑值,指示是否绘制缺口箱线图(默认为FALSE)。如果设置为TRUE,则绘制缺口箱线图。
varwidth:一个逻辑值,指示是否根据箱子的样本数目调整箱子的宽度(默认为FALSE)。如果设置为TRUE,则根据样本数目调整箱子的宽度。
outline:一个逻辑值或字符向量,指示是否绘制异常值的点或字符(默认为TRUE)。如果设置为FALSE,则不绘制异常值。
col:箱线图的颜色。
border:箱线图的边框颜色。
main:箱线图的标题。
xlab:x轴的标签。
ylab:y轴的标签。
# 创建一个向量作为示例数据 data <- c(22, 34, 16, 28, 30, 20, 24, 18, 21, 31) # 使用一些常用参数来自定义箱线图的外观 boxplot(data, col = "blue", # 设置箱线图的颜色为蓝色 border = "white", # 设置箱线图的边框颜色为白色 main = "Boxplot", # 设置箱线图的标题 xlab = "Data", # 设置x轴标签 ylab = "Values", # 设置y轴标签 notch = TRUE # 绘制缺口箱线图 )
将notch参数设置为FALSE,并使用out参数指定了两个异常值(10和40)
# 创建一个向量作为示例数据 data <- c(22, 34, 16, 28, 30, 20, 24, 18, 21, 31) # 使用notch=FALSE和带有异常值的out参数 boxplot(data, col = "blue", # 设置箱线图的颜色为蓝色 main = "Boxplot", # 设置箱线图的标题 xlab = "Data", # 设置x轴标签 ylab = "Values", # 设置y轴标签 notch = FALSE, # 不绘制缺口箱线图 out = c(10, 40) # 指定异常值 )
scatterplot3D: 绘制三维散点图
常用参数
x,y,z:要绘制的数据点的三个变量。
color:指定散点的颜色。可以是一个字符向量或颜色名称。例如,"blue"表示蓝色,"#FF0000"表示红色。
pch:指定散点的形状。可以是一个整数或字符。例如,16表示实心圆,17表示实心三角形。
main:设置散点图的标题。
xlab,ylab,zlab:设置x轴、y轴和z轴的标签。
type:指定绘图类型。默认值为"p"表示散点图,也可以选择其他类型如"l"表示连线图。
lty:指定连线的类型。默认值为"solid"表示实线,也可以选择其他类型如"dashed"表示虚线。
theta,phi:控制视角的角度,用于旋转和调整观察者的视图。
box:设置是否绘制包围盒。默认值为TRUE表示绘制边框,FALSE表示不绘制。
# 创建三个变量作为示例数据 x <- c(1, 2, 3, 4, 5) y <- c(6, 7, 8, 9, 10) z <- c(11, 12, 13, 14, 15) # 绘制三维散点图 scatterplot3d(x, y, z, color = "blue", # 设置散点的颜色为蓝色 pch = 16, # 设置散点的形状为实心圆 main = "3D Scatter Plot", # 设置图标题 xlab = "X", # 设置x轴标签 ylab = "Y", # 设置y轴标签 zlab = "Z" # 设置z轴标签 )
# 将画布分成2行2列,以便绘制4个图形 par(mfrow = c(2, 2))
par:修改图形设备的参数
常见参数
mfrow:用于设置绘图区域的布局,即将多个图形组织在一个网格中。例如,par(mfrow = c(2, 2))表示将画布分成2行2列,以便绘制4个图形。
mar:用于设置绘图区域的边距。默认值为c(5, 4, 4, 2) + 0.1,分别代表下、左、上、右的边距。
oma:用于设置整个图形区域的边距。默认值为c(0, 0, 2, 0),分别代表下、左、上、右的边距。
mfcol:类似于mfrow,用于设置绘图区域的布局,但是按列来组织图形。例如,par(mfcol = c(2, 2))表示将画布分成2列2行,以便绘制4个图形。
mgp:用于设置刻度标签与轴线之间的距离、刻度标签与轴线之间的距离以及刻度线与轴线之间的距离。默认值为c(3, 1, 0)。
cex.axis:用于设置坐标轴标签的字体大小。
cex.lab:用于设置轴标题的字体大小。
font:用于设置绘图区域中的字体类型。默认值为1表示标准字体。
family:用于设置字体系列,比如"serif"表示衬线字体,"sans"表示无衬线字体。
(1)设置绘制区域布局
# 将画布分成2行2列,以便绘制4个图形
par(mfrow = c(2, 2))
(2)设置绘图区域边距
# 设置下、左、上、右的边距分别为1、2、1、2 par(mar = c(1, 2, 1, 2))
(3)设置整个图形区域的边距
# 设置下、左、上、右的边距分别为1、1、1、1 par(oma = c(1, 1, 1, 1))
(4)设置刻度标签、轴标题和字体大小
# 设置刻度标签、轴标题的字体大小为1.5倍原始大小 par(cex.axis = 1.5, cex.lab = 1.5)
title:设置标题
参数
main:指定主标题的文本内容。
sub:指定副标题的文本内容。
xlab:指定x轴标题的文本内容。
ylab:指定y轴标题的文本内容。
line:指定标题相对于图形的位置。默认值为0.5,表示居中放置。负值将标题放置在图形外部,正值将标题放置在图形内部。
col.main:指定主标题的文字颜色。
col.sub:指定副标题的文字颜色。
col.lab:指定x轴和y轴标题的文字颜色。
cex.main:指定主标题的字体缩放系数,用于调整字体大小。
cex.sub:指定副标题的字体缩放系数,用于调整字体大小。
cex.lab:指定x轴和y轴标题的字体缩放系数,用于调整字体大小。
font.main:指定主标题的字体样式,默认为1表示标准字体。其他可用的字体样式有"bold"(粗体)、"italic"(斜体)等。
font.sub:指定副标题的字体样式。
font.lab:指定x轴和y轴标题的字体样式。
title( main = "Scatter Plot", sub = "Data Analysis", xlab = "X-axis", ylab = "Y-axis", col.main = "blue", col.sub = "red", col.lab = "green", cex.main = 1.5, cex.sub = 1, cex.lab = 1.2, font.main = 2, font.sub = "italic", font.lab = 3 )
axis:自定义坐标轴的外观和属性
axis(side, at, labels, pos, tick, line, lty, lwd, col, cex.axis, font, ...)
参数
side:指定要修改的坐标轴(1=下轴,2=左轴,3=上轴,4=右轴)。
at:指定刻度线的位置。
labels:指定刻度标签的文本内容。
pos:指定轴线和刻度线的位置(通常与at参数一起使用)。
tick:控制是否显示刻度线。
line:控制轴线和刻度线的长度。
lty:控制轴线和刻度线的线型。
lwd:控制轴线和刻度线的线宽。
col:控制轴线和刻度线的颜色。
cex.axis:控制刻度标签的字体缩放系数。
font:控制刻度标签的字体样式。
# 自定义x轴 axis(side = 1, at = c(1, 2, 3, 4), labels = c("A", "B", "C", "D"), pos = 0, tick = TRUE, line = -0.5, lty = "dashed", lwd = 2, col = "blue", cex.axis = 1.2, font = 2) # 自定义y轴 axis(side = 2, at = c(0, 5, 10, 15), labels = c("Low", "Medium", "High", "Very High"), pos = 0, tick = TRUE, line = -0.5, lty = "dotted", lwd = 1.5, col = "red", cex.axis = 1, font = 3)
rug:添加轴密度
rug(x, side = 1, ticksize = 0.03, line = NULL, lty = NULL, lwd = NULL, col = NULL, ...)
参数
x:指定要在坐标轴上绘制轴密度标记的值。
side:指定轴密度标记的位置(1=下轴,2=左轴,3=上轴,4=右轴)。
ticksize:指定轴密度标记的大小。
line:指定轴密度标记的位置(通常与x参数一起使用)。
lty:控制轴密度标记的线型。
lwd:控制轴密度标记的线宽。
col:控制轴密度标记的颜色。
# 在散点图上添加轴密度标记 plot(x, y) rug(x, side = 1, ticksize = 0.03, col = "blue") # 在直方图上添加轴密度标记 hist(x) rug(x, side = 1, ticksize = 0.03, col = "red") # 在密度图上添加轴密度标记 plot(density(x)) rug(x, side = 1, ticksize = 0.03, col = "green")
grid:添加网格
nx:指定网格线在x轴上的数量。
ny:指定网格线在y轴上的数量。
col:设置网格线的颜色。
lty:设置网格线的类型。
lwd:设置网格线的宽度。
# 添加默认的灰色虚线网格线 plot(x, y) grid() # 添加自定义颜色、线型和线宽的网格线 plot(x, y) grid(col = "blue", lty = "dashed", lwd = 1) # 添加指定数量的网格线 plot(x, y) grid(nx = 5, ny = 5)
abline:添加直线
abline(a = NULL, b = NULL, h = NULL, v = NULL, reg = NULL, coef = NULL, ...)
a:直线的截距。
b:直线的斜率。
h:添加水平直线,指定y轴上的值。
v:添加垂直直线,指定x轴上的值。
reg:添加回归线,使用回归模型的结果。
coef:添加自定义系数的直线。
# 添加斜率为1、截距为0的直线 plot(x, y) abline(a = 0, b = 1) # 添加水平直线 plot(x, y) abline(h = 5, col = "red") # 添加垂直直线 plot(x, y) abline(v = 3, col = "blue") # 添加回归线(使用线性回归模型的结果) plot(x, y) #lm() 函数用于拟合线性回归模型 #y ~ x 表示以 x 为自变量,y 为因变量进行拟合 fit <- lm(y ~ x) abline(reg = fit, col = "green") # 添加自定义系数的直线 plot(x, y) abline(a = 2.5, b = -0.5, col = "purple")
lines:添加直线
x:指定线条的 x 坐标值。
y:指定线条的 y 坐标值。
type:指定线条的类型,如 "l"(直线)、"b"(带有下垂直线段的折线)、"o"(带有上垂直线段的折线)、"s"(步进函数)、"h"(阶梯函数)等。
lty:指定线条的线型。
lwd:指定线条的宽度。
col:指定线条的颜色。
# 绘制直线 plot(x, y) lines(x = c(1, 2, 3), y = c(2, 4, 3), col = "blue") # 绘制折线 plot(x, y) lines(x = c(1, 2, 3, 4), y = c(2, 4, 3, 5), type = "b", col = "red") # 绘制阶梯函数 plot(x, y) lines(x = c(1, 2, 3, 4), y = c(2, 4, 3, 5), type = "h", col = "green") # 绘制自定义线型和宽度的线条 plot(x, y) lines(x, y, lty = 2, lwd = 2, col = "purple")
text:添加标签
参数
x:指定标签的 x 坐标。
y:指定标签的 y 坐标。
labels:指定要显示的文本标签内容。
pos:指定标签相对于坐标点的位置,可选值包括 1(下方)、2(左下方)、3(左方)、4(左上方)、5(上方)、6(右上方)、7(右方)和 8(右下方)。
col:指定标签的颜色。
cex:指定标签的字体大小缩放因子。
font:指定标签的字体类型,如 "plain"(普通字体)、"bold"(粗体)、"italic"(斜体)等。
# 创建散点图并添加标签 plot(x, y) text(x = c(1, 2, 3), y = c(2, 4, 3), labels = c("Label 1", "Label 2", "Label 3")) # 添加带有样式的标签 plot(x, y) text(x = c(1, 2, 3), y = c(2, 4, 3), labels = c("Label 1", "Label 2", "Label 3"), pos = 4, col = "blue", font = 2, cex = 1.5)
legend:添加图例
参数
x:指定图例的 x 坐标位置。
y:指定图例的 y 坐标位置。
legend:一个字符向量,包含要显示的图例标签。
fill:一个字符向量,指定图例中各个标签对应的填充颜色。
col:一个字符向量,指定图例中各个标签对应的线条或点的颜色。
pch:一个整数向量,指定图例中各个标签对应的点的形状。
0:一个没有任何标记的点。
1:一个小圆点(默认值)。
2:一个小三角形。
3:一个小菱形。
4:一个小正方形。
5:一个小平行四边形。
6:一个小五角星。
其他整数值:自定义的点的形状,例如 pch = 8。
lty:一个整数向量,指定图例中各个标签对应的线条的类型。
0:不画线条。
1:实线(默认值)。
2:虚线。
3:点线。
4:点划线。
"blank":空白线条,即没有线条。
其他整数值:自定义的线条类型,例如 lty = 5。
bty:一个字符,指定图例的边界类型。可选值包括 "o"(默认,边界框),"n"(无边界)和 "l"(仅左边界)。
cex:一个数值,指定图例中文本(标签)的大小缩放因子。
title:一个字符,指定图例的标题。
x <- c(1, 2, 3, 4, 5) y <- c(2, 4, 3, 5, 1) plot(x, y, type = "b", pch = 16, col = "blue", main = "散点图示例") points(x, y^2, pch = 17, col = "red") lines(x, y, col = "green") legend("topright", legend = c("数据1", "数据2", "线条"), pch = c(16, 17, NA), col = c("blue", "red", "green"), lty = c(NA, NA, 1), title = "图例标题")