R语言绘图相关函数(含实例)

目录

plot:可用于创建多种类型的图形

dev.new():新建画板

hist:绘制直方图

dotchart:绘制点图的函数

pie:绘制饼图

 pair:绘制散点图矩阵

boxplot:绘制箱线图

scatterplot3D: 绘制三维散点图

par:修改图形设备的参数

title:设置标题

axis:自定义坐标轴的外观和属性

rug:添加轴密度

grid:添加网格

abline:添加直线

lines:添加直线

text:添加标签

legend:添加图例


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: 绘制三维散点图

常用参数

  • xyz:要绘制的数据点的三个变量。
  • color:指定散点的颜色。可以是一个字符向量或颜色名称。例如,"blue"表示蓝色,"#FF0000"表示红色。
  • pch:指定散点的形状。可以是一个整数或字符。例如,16表示实心圆,17表示实心三角形。
  • main:设置散点图的标题。
  • xlabylabzlab:设置x轴、y轴和z轴的标签。
  • type:指定绘图类型。默认值为"p"表示散点图,也可以选择其他类型如"l"表示连线图。
  • lty:指定连线的类型。默认值为"solid"表示实线,也可以选择其他类型如"dashed"表示虚线。
  • thetaphi:控制视角的角度,用于旋转和调整观察者的视图。
  • 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轴标签
)

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:设置标题

参数

  1. main:指定主标题的文本内容。
  2. sub:指定副标题的文本内容。
  3. xlab:指定x轴标题的文本内容。
  4. ylab:指定y轴标题的文本内容。
  5. line:指定标题相对于图形的位置。默认值为0.5,表示居中放置。负值将标题放置在图形外部,正值将标题放置在图形内部。
  6. col.main:指定主标题的文字颜色。
  7. col.sub:指定副标题的文字颜色。
  8. col.lab:指定x轴和y轴标题的文字颜色。
  9. cex.main:指定主标题的字体缩放系数,用于调整字体大小。
  10. cex.sub:指定副标题的字体缩放系数,用于调整字体大小。
  11. cex.lab:指定x轴和y轴标题的字体缩放系数,用于调整字体大小。
  12. font.main:指定主标题的字体样式,默认为1表示标准字体。其他可用的字体样式有"bold"(粗体)、"italic"(斜体)等。
  13. font.sub:指定副标题的字体样式。
  14. 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 = "图例标题")


如学习到新内容会补充,整理不易,如有错误或遗漏,请大佬们不吝赐教!!💖💖

  • 7
    点赞
  • 111
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值