📜  R中的堆积条形图(1)

📅  最后修改于: 2023-12-03 15:04:58.566000             🧑  作者: Mango

R中的堆积条形图

在数据可视化中,堆积条形图是一种非常常用的图表类型。它可以将不同分类或组别的数据堆积在一起,形成一个整体,展示出各组别的变化和趋势。

在R语言中,我们可以使用ggplot2包来绘制堆积条形图。下面就来介绍一下具体的绘图步骤和参数设置。

数据准备

首先,我们需要准备一份数据集。这份数据集应该包含两个变量:一个是分类变量,表示各组别的名称;另一个是数值变量,表示各组别的数量或百分比等信息。

下面我们以mtcars数据集为例,创建一份包含两个变量的数据集:

library(ggplot2)

data(mtcars)
df <- data.frame(
  car = rownames(mtcars),
  hp = mtcars$hp,
  am = ifelse(mtcars$am == 1, "manual", "auto")
)

运行完这段代码后,我们就创建了一份名为df的数据集,包含了三列变量:car表示汽车的名称,hp表示汽车的马力,am表示汽车的变速器类型(自动或手动)。

绘图步骤

绘制堆积条形图的步骤如下:

  1. 使用ggplot函数创建一个绘图空间。
p <- ggplot(df, aes(x = am, y = hp, fill = car))

这行代码将数据集df作为参数传递给ggplot函数,同时用aes函数指定了x、y和fill的变量名。其中,x和y是条形图的主要坐标轴,fill指定了堆积的分类变量。

  1. 添加一个geom_col图层,创建条形图。
p + geom_col(position = "stack")

这行代码中,geom_col函数代表条形图的图层,也称为几何对象。参数position = "stack"表示堆积式绘图。

  1. 对图形做进一步美化,如添加标签、修改颜色等。
p + 
  geom_col(position = "stack") +
  labs(title = "Automatic versus Manual Transmission", x = "Transmission Type", y = "Horsepower") +
  scale_fill_brewer(palette = "Blues")

这行代码中,我们使用labs函数添加标题和坐标轴标签,使用scale_fill_brewer函数修改颜色。

完整代码

下面是将上面三个步骤整合在一起的完整代码:

library(ggplot2)

data(mtcars)
df <- data.frame(
  car = rownames(mtcars),
  hp = mtcars$hp,
  am = ifelse(mtcars$am == 1, "manual", "auto")
)

p <- ggplot(df, aes(x = am, y = hp, fill = car))
p + 
  geom_col(position = "stack") +
  labs(title = "Automatic versus Manual Transmission", x = "Transmission Type", y = "Horsepower") +
  scale_fill_brewer(palette = "Blues")
结语

通过以上步骤,我们就可以快速创建出一个美观实用的堆积条形图。在实际应用中,我们还可以通过调整图层参数、使用facet_wrap将数据按子组别分割等方法,进一步定制和完善我们的图表。