当前位置:首页 » 《随便一记》 » 正文

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

14 人参与  2024年10月14日 12:40  分类 : 《随便一记》  评论

点击全文阅读


这里是一些无需安装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:一个逻辑值,指示是否绘制水平柱状图,默认为FALSEcol:柱子的填充颜色。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:10y <- 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


点击全文阅读


本文链接:http://zhangshiyu.com/post/171634.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1