📜  在 R 中的直方图条形顶部添加计数和百分比标签(1)

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

在 R 中的直方图条形顶部添加计数和百分比标签

在 R 中绘制直方图一般使用 hist() 函数,但默认情况下不会显示条形的计数和百分比。本文将介绍如何在直方图的条形顶部添加计数和百分比标签。

1. 准备数据

首先,我们需要准备一个用于绘制直方图的数据向量。以下是一个随机生成的数据向量:

set.seed(123)
data <- rnorm(1000)
2. 绘制直方图

使用 hist() 函数绘制直方图。我们添加 breaks 参数来控制条形数量,添加 freq=FALSE 参数来显示百分比而不是计数。最后,我们可以使用 main 参数添加一个标题。

hist(data, breaks=20, freq=FALSE, main="Histogram")
3. 添加标签

使用 ggplot2 包可以很容易地在直方图条形顶部添加计数和百分比标签。我们需要先将数据转换为数据框,并计算每个条形的计数和百分比。

library(ggplot2)

# 将数据转换为数据框
df <- data.frame(values=data)

# 计算每个条形的计数和百分比
df$count <- cut(df$values, breaks=20, labels=FALSE)
df$labels <- sprintf("%d (%.1f%%)", table(df$count), prop.table(table(df$count))*100)

现在,我们可以使用 ggplot2 包的 geom_histogram() 函数绘制直方图,并添加 geom_text() 函数来显示标签。我们还可以使用 scale_x_continuous()scale_y_continuous() 函数来设置横轴和纵轴的标签,以及 theme() 函数来设置图例和标签的字体大小和颜色。

ggplot(df, aes(x=values)) +
  geom_histogram(binwidth=0.5, fill="dodgerblue", color="black") +
  geom_text(stat="bin", aes(label=labels, y=0.5*..count..), 
            size=3, color="white", fontface="bold") +
  scale_x_continuous("Values", expand=c(0,0)) +
  scale_y_continuous("Frequency (%)", labels = scales::percent_format(), expand=c(0,0)) +
  theme(plot.title = element_text(size=18, face="bold", vjust=1.5),
        axis.title.x = element_text(size=14),
        axis.title.y = element_text(size=14),
        axis.text = element_text(size=12),
        legend.title = element_blank(),
        legend.text = element_text(size=12))
4. 结论

本文介绍了如何在 R 中的直方图条形顶部添加计数和百分比标签,以及如何使用 ggplot2 包绘制更具定制性的直方图。