【问题标题】:How can I make the bar graph for each group separately?如何分别为每个组制作条形图?
【发布时间】:2015-10-12 09:41:04
【问题描述】:

我有 500 个组的数据,每个组有不同的学生数量和他们的分数。我想为每个组制作单独的条形图(在 R 中),这样学生应该在 x 轴上,他们的分数在 y 轴上。我尝试使用 ggplot2 制作,但它为所有 500 个组生成单个条形图。我的数据采用以下形式:知道如何为 R 中的每个组分别制作它吗?

【问题讨论】:

  • 给我们一些可重现的数据,我们将向您展示如何在基础 R 中做到这一点。

标签: r graph bar-chart


【解决方案1】:
library(plyr)
library(ggplot2)
dataset <- expand.grid(Group = 1:3, Student = LETTERS[1:3]) 
dataset$Score <- runif(nrow(dataset), max = 100)
dlply(dataset, ~Group, function(x){
  ggplot(x, aes(x = Student, y = Score)) + geom_bar(stat = "identity")
})

【讨论】:

    【解决方案2】:

    我们可以使用base R。我们split数据集通过'Group'列创建list,循环遍历list元素的names,分别为每个组创建barplot并保存为png文件。

    lst <- split(df1[-1], df1$Group)
    invisible(lapply(names(lst), function(nm1) {
       png(paste0('barplot_', nm1, '.png'))
       barplot(setNames(lst[[nm1]]$Score, lst[[nm1]]$Student), 
                                  main=paste0('barplot of Group', nm1))
       dev.off()
     }))
    

    注意:标题 (main=) 和文件名可以相应更改。

    【讨论】:

      猜你喜欢
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 2012-10-21
      • 1970-01-01
      • 2018-01-24
      • 1970-01-01
      • 2020-05-29
      相关资源
      最近更新 更多