如何在 r 中创建条形图


带状图是一种沿单个波段显示数值数据的图表。与箱线图类似,条形图可以帮助您可视化数据的分布。当样本量较小时,条形图可以很好地替代箱线图,这样您就可以看到各个数据点。

本教程介绍如何使用内置的stripchart()函数在 R 中创建带状图。

stripchart() 函数

在 R 中创建条形图的基本语法是:

stripchart(x,方法,抖动,主要,xlab,ylab,col,pch,垂直,group.names)

  • x :要绘制的数值向量或数值向量列表。这是产生情节所需的唯一参数。
  • method :用于分隔具有相同值的点的方法。默认的“overplot”方法会导致这些点被过度绘制,但可以指定“jitter”来抖动点或“stack”来堆叠点。
  • jitter :当使用 method = “jitter” 时,这提供了要应用的抖动量。
  • 主要:图表标题
  • xlab : x 轴标签
  • ylab : y 轴标签
  • col : 绘图点的颜色
  • pch :绘图点的形状
  • Vertical :当vertical为“TRUE”时,默认情况下路径是垂直绘制的,而不是水平绘制的
  • group.names :如果绘制了多个数字向量,则在图旁边打印组标签。

单个数字向量的条形图

以下示例使用嵌入式 R 数据集iris为单个数值向量创建条形图。

 #view first six rows of iris dataset
head(iris)

# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1 5.1 3.5 1.4 0.2 setosa
#2 4.9 3.0 1.4 0.2 setosa
#3 4.7 3.2 1.3 0.2 setosa
#4 4.6 3.1 1.5 0.2 setosa
#5 5.0 3.6 1.4 0.2 setosa
#6 5.4 3.9 1.7 0.4 setosa

以下代码为Sepal.Length变量创建基带图表:

 stripchart(iris$Sepal.Length)

我们还可以添加额外的参数来在 x 轴上添加标题和标签,更改点的颜色,更改点的形状,并使用“抖动”方法以使各个点不重叠:

 stripchart(iris$Sepal.Length,
           main = 'Sepal Length Distribution',
           xlab = 'Sepal Length',
           col = 'red',
           pch = 1,
           method = 'jitter')

我们可以“堆叠”它们,而不是混合这些点:

 stripchart(iris$Sepal.Length,
           main = 'Sepal Length Distribution',
           xlab = 'Sepal Length',
           col = 'red',
           pch = 1,
method = 'stack' )

我们还可以垂直显示绘图而不是默认的水平显示,并将轴标签更改为 y 轴:

 stripchart(iris$Sepal.Length,
           main = 'Sepal Length Distribution',
ylab = 'Sepal Length' ,
           col = 'red',
           pch = 1,
           method = 'jitter',
vertical = TRUE )

多个数值向量的条形图

我们还可以通过传递数值向量列表在单个图中绘制多个带状图。

以下代码创建一个包含iris数据集中的萼片长度和宽度变量的列表,并为单个图中的每个变量生成一个条形图:

 #create list of variables
x <- list('Sepal Length' = iris$Sepal.Length, 'Sepal Width' = iris$Sepal.Width)

#create plot that contains one strip chart per variable
stripchart(x,
           main = 'Sepal Width & Length Distributions',
           xlab = 'Measurement', 
           ylab = 'Variable',
           col = c('steelblue', 'coral2'),
           pch = 16,
           method = 'jitter')

就像前面的示例一样,我们可以选择垂直绘制条形图,而不是默认的水平绘制:

 stripchart(x, main = 'Sepal Width & Length Distributions',
           xlab = 'Measurement', 
           ylab = 'Variable',
           col = c('steelblue', 'coral2'),
           pch = 16,
           method = 'jitter',
vertical = TRUE )

此外,我们可以将 y~x 形式的公式传递到 stripchart() 函数中,其中y是按x的值分组的数值向量。

例如,在鸢尾花数据集中,我们可以按具有三个不同值(“setosa”、“versicolor”和“virginica”)的物种对数据进行分组,然后在条形图中绘制每个物种的萼片长度

 stripchart(Sepal.Length ~ Species,
           data = iris,
           main = 'Sepal Length by Species',
           xlab = 'Species', 
           ylab = 'Sepal Length',
           col = c('steelblue', 'coral2', 'purple'),
           pch = 16,
           method = 'jitter',
           vertical = TRUE)

要查看 R 中 stripchart() 函数的完整文档,只需键入:

 ?stripchart

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注