📜  r histogram 不同的组,如 barplot (1)

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

使用 histogram()barplot() 绘制不同组的直方图

histogram()barplot() 都是用于绘制直方图的 R 函数,它们可以用来比较不同组之间的分布情况。在本文中,我们将介绍如何使用这两个函数来制作漂亮的直方图。

准备工作

在开始绘图之前,我们需要加载必要的 R 包。本文中我们将使用 ggplot2dplyr 包。如果您没有安装这些包,请使用以下命令进行安装:

install.packages("ggplot2")
install.packages("dplyr")

然后,我们需要准备一些数据来进行绘图。为此,我们可以使用 R 内置的 mpg 数据集,该数据集记录了不同型号汽车的燃油效率(英里加仑)和其他信息。我们将使用 dplyr 包来对数据进行处理。

library(dplyr)

# 加载 mpg 数据集
data(mpg)

# 对数据进行处理,生成两个小组 data.frames
group1 <- mpg %>% filter(displ <= 3)
group2 <- mpg %>% filter(displ > 3)

现在我们已经准备好了数据,可以开始制作直方图了。

使用 histogram() 绘制直方图

histogram() 是一个基本的 R 函数,可以用来绘制直方图。默认情况下,它会将观察值分成 30 个组,并画出每个组中观察值的频率(或密度)。

我们可以通过设置 breaks 参数来改变组的数量。下面的代码将生成 15 个组的直方图,并使用默认的颜色和边框:

# 绘制第一个小组的直方图
histogram(group1$hwy, breaks = 15, col = "blue", border = "white", main = "小组 1 的燃油效率分布")

group1_hist

在上面的代码中,我们使用了 histogram() 函数来绘制了 group1 data.frame 中 hwy 变量的直方图。我们使用 breaks 参数来设置分组数量。我们还使用了 colborder 参数来指定颜色和边框。

使用 barplot() 绘制直方图

另一个绘制直方图的函数是 barplot()。与 histogram() 不同,barplot() 可以用来绘制任意类型的数据,而不仅仅是数值型数据。为了使用 barplot() 绘制直方图,我们需要计算每个组中的观察值数量,并将其绘制成一个条形图。

下面的代码演示了如何使用 barplot() 来绘制直方图。我们将使用 group_by()summarize() 函数来计算每个小组中的观察值数量:

library(ggplot2)

# 计算小组 1 中每个唯一的 mpg 数量
group1_counts <- group1 %>% group_by(mpg) %>% summarize(count = n())

# 绘制小组 1 的直方图
barplot(group1_counts$count, names.arg = group1_counts$mpg, col = "blue", border = "white", main = "小组 1 的燃油效率分布")

group1_barplot

在上面的代码中,我们使用了 group_by()summarize() 函数来计算每个小组中的观察值数量。我们还使用了 names.arg 参数来指定每个组的名称,并使用 colborder 参数来指定颜色和边框。

完整代码
library(ggplot2)
library(dplyr)

# 加载 mpg 数据集
data(mpg)

# 对数据进行处理,生成两个小组 data.frames
group1 <- mpg %>% filter(displ <= 3)
group2 <- mpg %>% filter(displ > 3)

# 绘制小组 1 的直方图
histogram(group1$hwy, breaks = 15, col = "blue", border = "white", main = "小组 1 的燃油效率分布")

# 计算小组 1 中每个唯一的 mpg 数量
group1_counts <- group1 %>% group_by(mpg) %>% summarize(count = n())

# 绘制小组 1 的直方图
barplot(group1_counts$count, names.arg = group1_counts$mpg, col = "blue", border = "white", main = "小组 1 的燃油效率分布")