R语言入门:R的基本绘图功能(柱状图、散点图、折线图、直方图和饼图)及其参数设置汇总

这里是一些无需安装R包的绘图函数小总结~包括了barplot()、plot()、boxplot()、pie()和hist()的简单用法和举例,几个函数之间大同小异。

注:这里只给出出了简单的用法,还有很多参数和用法正在补充中。

目录

1、barplot()函数

 2、plot()函数

2.1 plot()函数的基本语法

2.2 参数解释

2.3 常用外观样式参数

2.4 绘制简单的散点图

 2.4 绘制折线图

3、boxplot()函数

3.1 boxplot()函数的基本语法:

3.2 参数解释

 3.3 绘制一个简单的箱线图

3.4 绘制一个复杂的箱线图 

4、hist()函数

4.1 hist()函数的基本语法

4.2 常用的参数解释

4.3 绘制一个简单的直方图

5、 pie()函数


1、barplot()函数

用于创建柱状图,也称为条形图,用于可视化数据的分布或频率。柱状图通常用于显示分类变量的频率或连续变量的分组汇总数据。

以下是barplot()函数的基本用法及参数:

barplot(height, names.arg = NULL, beside = FALSE, horiz = FALSE, col = NULL, border = NULL, main = NULL, xlab = NULL, ylab = NULL, ...)

参数解释:

  • height:一个向量,表示每个柱子的高度,即频率或计数值。
  • names.arg:一个可选的向量,表示每个柱子的标签,通常用于指定每个柱子的名称。
  • beside:一个逻辑值,指示是否将柱子并排显示,默认为FALSE,表示垂直堆叠。
  • horiz:一个逻辑值,指示是否绘制水平柱状图,默认为FALSE
  • col:柱子的填充颜色。
  • border:柱子的边框颜色。
  • main:图形的标题。
  • xlab:x轴标签。
  • ylab:y轴标签。
  • ...:其他参数,用于传递给plot()函数。

下面是一个简单的示例,演示如何使用barplot()函数创建柱状图:

# 创建一个向量表示不同类别的频率
height <- c(10, 20, 15, 25)

# 创建柱状图
barplot(height, names.arg = c("A", "B", "C", "D"), col = "skyblue", main = "Bar Plot Example", xlab = "Categories", ylab = "Frequency")

这段代码将创建一个垂直柱状图,显示了四个类别的频率,每个柱子的标签分别为"A"、"B"、"C"和"D",柱子的填充颜色为天蓝色,图形标题为"Bar Plot Example",x轴标签为"Categories",y轴标签为"Frequency"。运行结果如下:

 2、plot()函数

plot() 函数是一种用于创建图形的基本函数,它能够根据输入数据生成多种类型的图表。

2.1 plot()函数的基本语法
plot(x, y = NULL, type = "p",  xlim = NULL, ylim = NULL,
     log = "", main = NULL, sub = NULL, xlab = NULL, ylab = NULL,
     ann = par("ann"), axes = TRUE, frame.plot = axes,
     panel.first = NULL, panel.last = NULL, asp = NA,
     xgap.axis = NA, ygap.axis = NA,
     ...)
2.2 参数解释
  • x, y: 这是绘制图形的数据。x 是横坐标的数据,y 是纵坐标的数据。如果只提供 x,则 y 默认为 x 的索引。

  • type: 定义了图形的类型。常见的类型有:

    "p" 表示只绘制点,"l" 表示只绘制线,"b" 表示点和线都绘制,"c" 表示只绘制线段的一部分,"o" 表示点和线重叠,"h" 表示绘制垂直线,"s""S" 分别表示阶梯图,其中 "S" 为水平开始,"n" 不绘制任何图形。
  • xlim, ylim: 分别设定x轴和y轴的范围,例如 xlim = c(0, 10) 设置x轴从0到10。

  • log: 指定坐标轴是否取对数,可以设置为 "x", "y", "xy" 表示对应轴使用对数尺度。

  • main: 主标题的文本。

  • sub: 副标题的文本。

  • xlab, ylab: 分别为x轴和y轴的标签文本。

  • ann: 是否自动注释图形,包括绘制标题、坐标轴标签等。

  • axes: 是否绘制坐标轴。

  • frame.plot: 是否绘制图形边框。

  • panel.first, panel.last: 允许用户在绘制主要图形内容之前(panel.first)和之后(panel.last)添加自定义的绘图命令。

  • asp: 设置图形的纵横比,常用于地图绘制等。

  • xgap.axis, ygap.axis: 控制轴线的间隙。

  • ...: 其他图形参数,如颜色、线条样式、点的形状等,这些可以通过 ... 传递给低级绘图函数。

2.3 常用外观样式参数
  • col: 指定线条和点的颜色。可以指定多个颜色,以便每个点都有自己的颜色。如果颜色数量少于点的数量,颜色会按照标准方式循环使用,而线条将全部用第一个指定的颜色绘制。

  • bg: 用于指定开放符号的背景颜色的向量。例如在使用 points() 函数时,可以用来设置数据点的背景色。需要注意的是,这与 par("bg") 设置不同。

        单个颜色名称:表示所有数据点的背景色都相同。

        一个颜色向量:可以为每个数据点指定一个单独的背景色。 

  • pch: 用于指定绘图字符或符号的向量。例如在使用 points() 函数时,可以用不同的字符或符号来表示数据点。

  • cex: 用于指定绘图字符和符号相对于默认大小的缩放比例的数值向量。这个值是相对于 par("cex") 的倍数。NULL 和 NA 相当于 1.0。需要注意的是,这不影响注释文本的大小。

  • lty: 用于指定线条类型的向量。例如,可以指定实线、虚线、点线等。

  • cex.main, col.lab, font.sub 等:用于设置主标题、副标题和轴标注的设置。这些参数可以通过 title()par() 函数来设置。

  • lwd: 用于指定线条宽度的向量。例如,可以通过设置 lwd 参数来控制线条的粗细。

这些参数可以通过将它们传递给绘图函数(如 plot()points()lines() 等)来自定义图形的外观。通过调整这些参数,可以创建出符合需求的各种样式的图形。

2.4 绘制简单的散点图
# 创建数据
x <- c(1, 2, 3, 4, 5)
y <- c(2, 3, 5, 7, 11)

# 绘制散点图
plot(x, y, main = "Scatter Plot", xlab = "X-axis", ylab = "Y-axis", col = "blue", pch = 16)

结果如图所示: 

 2.4 绘制折线图
# 创建数据
x <- 1:10
y <- sin(x)

# 绘制折线图
plot(x, y, type = "l", main = "Line Plot", xlab = "X-axis", ylab = "Y-axis", col = "red")

结果如图所示:

3、boxplot()函数

boxplot()函数用于创建箱线图,用于可视化一组数据的分布情况,特别是用于显示数据的中位数、四分位数、最小值和最大值等统计量。

3.1 boxplot()函数的基本语法:
## Default S3 method:
boxplot(x, ..., range = 1.5, width = NULL, varwidth = FALSE,
        notch = FALSE, outline = TRUE, names, plot = TRUE,
        border = par("fg"), col = "lightgray", log = "",
        pars = list(boxwex = 0.8, staplewex = 0.5, outwex = 0.5),
         ann = !add, horizontal = FALSE, add = FALSE, at = NULL)

其中,x是要绘制箱线图的数据向量或数据框,...表示可选参数,用于自定义箱线图的外观和标签等。

3.2 参数解释

  • x: 包含数据的向量、数据框或者列表,用来生成箱线图。

  • ...: 其他参数,用于传递给其他函数或者控制箱线图的绘制选项。

  • range: 箱线图的边界范围,通常是 1.5 倍的四分位距(IQR),用来确定异常值的范围。如果数据点在上四分位数加上 range 倍的 IQR 和下四分位数减去 range 倍的 IQR 之外,则被视为异常值。

  • width: 箱体的宽度,可以是数值或者向量,用于控制每个箱体的宽度。

  • varwidth: 一个逻辑值,表示是否根据每个组的观测数量来调整箱体的宽度,默认为 FALSE,表示所有箱体宽度相同。

  • notch: 一个逻辑值,表示是否在箱线图中显示缺口,缺口可以用来比较中位数的差异性,默认为 FALSE

  • outline: 一个逻辑值,表示是否绘制异常值的轮廓,默认为 TRUE,即绘制。

  • names: 一个字符向量,用来指定每个箱线图的名称,通常用于多组数据的比较。

  • plot: 一个逻辑值,表示是否绘制箱线图,默认为 TRUE,即绘制。

  • border: 箱线图边框的颜色,默认为当前绘图设备的前景色。

  • col: 箱线图的填充颜色,默认为 "lightgray",可以是一个颜色向量。

  • log: 可选参数,表示是否对数据取对数,可以取值 "x"(对 x 轴取对数)、"y"(对 y 轴取对数)、"xy"(同时对 x 和 y 轴取对数)。

  • pars: 一个列表,包含其他控制绘图的参数,如箱体宽度 (boxwex)、锚点宽度 (staplewex)、异常值宽度 (outwex) 等。

  • ann: 一个逻辑值,表示是否显示注释信息(标题、轴标签等),默认为 TRUE,如果 addTRUE,则不显示。

  • horizontal: 一个逻辑值,表示是否绘制水平箱线图,默认为 FALSE,即垂直箱线图。

  • add: 一个逻辑值,表示是否将箱线图添加到已有的绘图上,默认为 FALSE,即新建一个绘图。

  • at: 一个数值或者向量,表示箱线图的放置位置,可以用来控制每个箱线图的水平位置。

 3.3 绘制一个简单的箱线图
data <- c(10, 15, 20, 25, 30)
boxplot(data)

 输出:

3.4 绘制一个复杂的箱线图 

假设有一个包含不同地区销售额的数据集 sales_data,其中包括两个因子变量:region(地区)和 product_type(产品类型),以及一个数值变量 sales(销售额)。

# 创建示例数据
sales_data <- data.frame(
  region = rep(c("North", "South", "East", "West"), each = 25),
  product_type = rep(c("A", "B"), times = 50),
  sales = rnorm(100, mean = 500, sd = 100)
)

# 查看数据前几行,head默认前六行
head(sales_data)

 查看前几行结果:

可以使用 boxplot 函数来绘制箱线图,其中 sales 是因变量,regionproduct_type 是自变量。

# 绘制箱线图
boxplot(sales ~ region, data = sales_data, 
        col = "lightblue", 
        main = "Sales by Region",
        xlab = "Region",
        ylab = "Sales Amount")

 输出:

4、hist()函数

 hist()函数用于创建直方图,用于显示数据的分布情况。

4.1 hist()函数的基本语法
hist(x, breaks = "Sturges",
     freq = NULL, probability = !freq,
     include.lowest = TRUE, right = TRUE, fuzz = 1e-7,
     density = NULL, angle = 45, col = "lightgray", border = NULL,
     main = paste("Histogram of" , xname),
     xlim = range(breaks), ylim = NULL,
     xlab = xname, ylab,
     axes = TRUE, plot = TRUE, labels = FALSE,
     nclass = NULL, warn.unused = TRUE, ...)

其中,x是要绘制直方图的数据向量,...表示可选参数,用于自定义直方图的外观和标签等。

4.2 常用的参数解释
  • x: 要绘制直方图的数据向量或因子。

  • breaks: 用于指定直方图的分箱方式。默认情况下,它为 "Sturges",这意味着使用 Sturges' formula 来确定箱子的数量。可以是一个数值向量来指定箱子的边界,也可以是一个表示要使用的分箱方法的字符串。

  • freq: 一个逻辑值,用于指定是否绘制频数直方图。如果为 TRUE,则绘制频数直方图;如果为 FALSE,则绘制频率直方图(频率直方图的总面积等于1)。

  • probability: 一个逻辑值,表示是否绘制概率密度直方图。默认情况下,它取频数直方图的相反值。如果 freq = FALSEprobability = TRUE,则绘制密度直方图(直方图的总面积等于1)。

  • include.lowest: 一个逻辑值,指示是否将最小值包括在第一个箱子中。

  • right: 一个逻辑值,用于控制直方图的箱子边界,详细解释如下。

    • right 参数用于指定直方图的箱界限。当 right 参数为 TRUE 时,箱界限包括右边界,即右闭区间;当 right 参数为 FALSE 时,箱界限不包括右边界,即右开区间。

      举个例子,假设有一个数据集包含值 [1, 2, 3, 4, 5],我们要将其分成两个箱子。当 right 参数为 TRUE 时,箱界限为 [1, 3)[3, 5];当 right 参数为 FALSE 时,箱界限为 (1, 3](3, 5]

      通常情况下,当数据是连续的时候,会使用默认值 right = TRUE,这样可以更好地反映数据的分布情况。但是,如果数据是离散的,并且你希望箱子的界限对应于数据点的值,而不是位于两个值之间,那么你可能会选择将 right 参数设置为 FALSE

  • fuzz: 一个小的正数,用于确保不会将值包括在直方图的边界之外。

  • density: 可以指定用于绘制密度曲线的密度值。如果为 NULL(默认),则根据直方图的频率或概率绘制密度曲线。

  • angle: 直方图中柱子的角度,以度数表示。

  • col: 直方图的柱子颜色。

  • border: 直方图柱子的边界颜色。

  • main: 图表的主标题。

  • xlim: x 轴的范围。

  • ylim: y 轴的范围。

  • xlab: x 轴的标签。

  • ylab: y 轴的标签。

  • axes: 一个逻辑值,指示是否绘制坐标轴。

  • plot: 一个逻辑值,指示是否绘制图形。如果设置为 FALSE,则只计算直方图并返回结果,但不会绘制。

  • labels: 一个逻辑值,指示是否在直方图的柱子上显示标签。

  • nclass: 指定要使用的箱子数量,如果指定了此参数,将忽略 breaks 参数。

  • warn.unused: 一个逻辑值,指示是否在函数调用中忽略的参数上发出警告。

  • ...: 其他参数,用于传递给底层的绘图函数。

4.3 绘制一个简单的直方图
# 创建一组示例数据
data <- c(5, 8, 10, 12, 15, 18, 20, 22, 25, 28, 30, 32, 35, 38, 40)

# 使用 hist() 函数绘制直方图
hist(data,          # 输入数据
     breaks = 5,    # 指定分组区间的个数
     col = "skyblue",   # 指定直方图的颜色
     main = "Histogram of Data",   # 指定标题
     xlab = "Value",              # 指定 x 轴标签
     ylab = "Frequency",          # 指定 y 轴标签
     border = "black",            # 指定直方图边界的颜色
     xlim = c(0, 45),             # 指定 x 轴的范围
     ylim = c(0, 5),              # 指定 y 轴的范围
     las = 1                      # 设置坐标轴标签方向为斜体
)

输出:

5、 pie()函数

pie()函数用于创建饼图,用于显示各类别数据在整体中的占比。

以下是pie()函数的基本语法:

pie(x, labels = names(x), ...)

其中,x是一个向量,表示要绘制饼图的数据,labels参数是一个可选参数,用于指定每个部分的标签,如果不提供,则默认使用x向量中的名称作为标签。...表示可选参数,用于自定义饼图的外观和标签等。

下面是一些常用的参数:

  • main: 饼图的主标题。
  • col: 饼图的填充颜色。
  • border: 饼图的边框颜色。
  • labels: 用于指定每个部分的标签。
  • clockwise: 逻辑值,表示是否顺时针绘制饼图。
  • init.angle: 初始角度,即起始位置的角度。
  • ...: 其他参数,用于进一步自定义饼图的外观。

例如,要绘制一个简单的饼图:

data <- c(10, 20, 30, 40)
pie(data)

输出:

参考:《R语言实战》[美]Robert I. Kabacoff

           《R数据科学》[新西兰] Hadley Wickham & [美] Garrett Grolemund

  • 27
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
柱状图的优点是能够清晰地显示不同类别或组之间的差异,易于比较数据的大小和趋势,也易于理解和解释。缺点是当类别或组过多时,图表会变得拥挤,难以阅读和比较。 条形图与柱状图类似,也能够清晰地显示不同类别或组之间的差异,易于比较数据的大小和趋势,但与柱状图相比,它更适合横向展示数据。缺点也是类似的,当类别或组过多时,图表会变得拥挤,难以阅读和比较。 折线图的优点是能够清晰地显示数据的趋势和变化,尤其适合展示时间序列数据。缺点是不能很好地显示数据的大小和比较不同类别或组之间的差异。 饼图的优点是能够清晰地显示不同部分构成整体的比例关系,易于理解和解释。缺点是不能很好地显示数据的大小和比较不同部分之间的差异,也不适合展示多个数据系列。 散点图的优点是能够清晰地显示两个变量之间的关系和趋势,也能够显示数据的分布情况。缺点是不能很好地显示数据的大小和比较不同类别或组之间的差异。 气泡图与散点图类似,但是能够通过气泡的大小表示第三个变量的大小,能够更为直观地展示数据的差异和趋势。缺点与散点图相似,不能很好地显示数据的大小和比较不同类别或组之间的差异。 雷达图的优点是能够清晰地显示多个变量之间的相互关系,易于比较不同类别或组的数据。缺点是不能很好地显示数据的大小和趋势,也不适合展示大量的数据。 箱型图的优点是能够清晰地显示数据的分布情况、离散程度和异常值,也能够比较不同类别或组之间的差异。缺点是不能很好地显示数据的趋势和变化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值