首页 > 解决方案 > R geom_bar 与每个条柱的子集的平均值

问题描述

如果我有一个包含数值的列,并且我想创建一个条形图,其中每个条形作为该列子集的平均值,那该怎么做?例如,

x1 <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)
x1_df <- data.frame(x1)
x_set1 <- mean(x1_df$x1[1:5])
x_set2 <- mean(x1_df$x1[6:10])
x_set3 <- mean(x1_df$x1[11:15])
x_set4 <- mean(x1_df$x1[16:20])

如何创建具有平均值高度的 4 个条形?

标签: rggplot2bar-chartgeom-bar

解决方案


您可以取mean每 5 个值,然后绘制。

library(dplyr)
library(ggplot2)

x1_df %>%
  group_by(grp = ceiling(row_number()/5)) %>%
  summarise(mean = mean(x1)) %>%
  ggplot() + aes(grp, mean) + geom_col()

在此处输入图像描述


推荐阅读