R语言入门:R的基本绘图功能(柱状图、散点图、折线图、直方图和饼图)及其参数设置汇总
泥木 2024-07-02 09:35:01 阅读 65
这里是一些无需安装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
,如果 add
为 TRUE
,则不显示。
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
是因变量,region
和 product_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 = FALSE
且 probability = 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
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。