📜  如何在 R 中创建相对频率直方图?(1)

📅  最后修改于: 2023-12-03 14:52:32.149000             🧑  作者: Mango

在 R 中创建相对频率直方图

在 R 中,我们可以使用 hist() 函数创建直方图。其中,参数 freq 用于确定是否绘制频率直方图或计数直方图。默认情况下,freq=TRUE 表示绘制频率直方图,freq=FALSE 表示绘制计数直方图。

如果我们要绘制相对频率直方图,需要将 freq 参数设置为 FALSE,并手动计算每个组的相对频率,然后将其绘制出来。

以下是一些示例代码,演示如何在 R 中创建相对频率直方图。

示例数据

我们使用 mtcars 数据集作为示例。这个数据集包含了一些关于汽车的数据,比如里程数、马力、重量等等。首先将数据集读入到 R 中。

data(mtcars)
例 1:基本的相对频率直方图

下面是一个简单的相对频率直方图的例子。我们将数据集中的 mpg 变量绘制成一个相对频率直方图。

# 将 mpg 列转换为数据框
mpg_df <- data.frame(mpg = mtcars$mpg)

# 计算每个组的频率,并绘制相对频率直方图
hist(mpg_df$mpg, 
     prob=TRUE, # prob=TRUE 表示绘制相对频率直方图
     main="Relative Frequency Histogram",
     xlab="Miles per Gallon",
     ylab="Relative Frequency")

这会产生一个相对频率直方图,如下所示:

相对频率直方图

例 2:自定义组数和组宽

如果您想使用自定义的组数和组宽来创建相对频率直方图(比如说,您想使用更细致的组来更好地描述数据的分布),可以使用 breaks 参数和 xlim 参数进行设置。

# 将 mpg 列转换为数据框
mpg_df <- data.frame(mpg = mtcars$mpg)

# 设定组数和组宽
my_breaks <- seq(10, 35, by=2)

# 计算每个组的相对频率,并绘制相对频率直方图
hist(mpg_df$mpg,
     breaks=my_breaks,
     freq=FALSE, # freq=FALSE 表示绘制相对频率直方图
     xlim=c(10, 35),
     main="Customized Number of Bins",
     xlab="Miles per Gallon",
     ylab="Relative Frequency")

这会产生一个使用自定义组数和组宽的相对频率直方图,如下所示:

自定义分组的相对频率直方图

例 3:使用 ggplot2 包绘制相对频率直方图

如果您想使用 ggplot2 包来绘制相对频率直方图,可以使用以下代码。

library(ggplot2)

# 将 mpg 列转换为数据框
mpg_df <- data.frame(mpg = mtcars$mpg)

# 计算每个组的相对频率
density <- density(mpg_df$mpg)

# 绘制相对频率直方图
ggplot(data=mpg_df, aes(x=mpg)) + 
  geom_histogram(aes(y=..density..), 
                 binwidth=2, 
                 colour="black", 
                 fill="white") + 
  geom_density(alpha=.2, fill="#FF6666") +
  ggtitle("Relative Frequency Histogram") + 
  xlab("Miles per Gallon") + 
  ylab("Relative Frequency") + 
  theme_bw()

这会产生一个使用 ggplot2 包绘制的相对频率直方图,如下所示:

使用 ggplot2 绘制的相对频率直方图

以上就是创建相对频率直方图的一些实例。您可以根据自己的需要进行修改和扩展。