📅  最后修改于: 2023-12-03 14:52:32.149000             🧑  作者: Mango
在 R 中,我们可以使用 hist()
函数创建直方图。其中,参数 freq
用于确定是否绘制频率直方图或计数直方图。默认情况下,freq=TRUE
表示绘制频率直方图,freq=FALSE
表示绘制计数直方图。
如果我们要绘制相对频率直方图,需要将 freq
参数设置为 FALSE
,并手动计算每个组的相对频率,然后将其绘制出来。
以下是一些示例代码,演示如何在 R 中创建相对频率直方图。
我们使用 mtcars
数据集作为示例。这个数据集包含了一些关于汽车的数据,比如里程数、马力、重量等等。首先将数据集读入到 R 中。
data(mtcars)
下面是一个简单的相对频率直方图的例子。我们将数据集中的 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")
这会产生一个相对频率直方图,如下所示:
如果您想使用自定义的组数和组宽来创建相对频率直方图(比如说,您想使用更细致的组来更好地描述数据的分布),可以使用 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")
这会产生一个使用自定义组数和组宽的相对频率直方图,如下所示:
如果您想使用 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 包绘制的相对频率直方图,如下所示:
以上就是创建相对频率直方图的一些实例。您可以根据自己的需要进行修改和扩展。