簡體   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