繁体   English   中英

如何从 R 中的两个数值变量创建堆叠直方图?

[英]How to create stacked histogram from two numeric variables in R?

我是第一次使用 R,遇到了一个无法解决的问题。

我测量了学生的“工作时间”和“学习时间”。 它们共同导致学生的“工作量”。 我想创建一个直方图来描述工作量并区分工作时间和学习时间的颜色。

就像堆叠条形图一样,但作为直方图,没有任何分类变量。

我在互联网上搜索了很长时间,但只找到了堆叠的条形图、重叠的直方图或密度图。

非常感谢您的帮助

编辑:我的数据看起来像

    VP     Work   Study     Workload
     1     10     20        30
     2     30     20        50
     3     20     40        60
     ...   ...    ...

因此,直方图的条形应该具有 30、50 和 60 的高度,并与“工作”和“学习”成比例着色。

根据您的编辑,我假设您希望每个学生的总时数都有一个栏。 是这样的吗?

我正在使用ggplot2tidyverse包中的函数。

library(dplyr)
library(tidyr)
library(ggplot2)

df <- tibble(VP = 1:3,
             Work = c(10, 30, 20),
             Study = c(20, 20, 40),
             Workload = c(30, 50, 60)) # Or simply `Workload = Work + Study`

df %>% 
  select(-Workload) %>% 
  tidyr::gather(-VP, key = "type", value = "time") %>% 
  ggplot(aes(x = factor(VP), y = time, fill = type)) +
    geom_col(position = "stack") # `position` argument defines the stacked bars

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM