在 R 中使用 ggplot2 将行作为堆叠条形图

Rows As Stacked Bar Plot Using ggplot2 In R

我刚开始在 R 中使用 ggplot2()(数据可视化)。我拥有的数据在行格式中具有不同的工作负载。这些列中的每一列都有四个不同的参数,我想将其绘制为堆积条形图,最好使用 ggplot2().

可重现数据

Workload P1   P2   P3   P4
W1       0.3  0.2  0.4  0.1
W2       0.5  0.1  0.3  0.1
W3       0.2  0.3  0.4  0.1
W4       0.3  0.2  0.5  0.1

我想将 Workload 绘制为 x-axis 然后 P1P2P3P4 将分别堆叠y-axis.

的工作量

我尝试了很多东西,但我对 ggplot2() 参数和参数感到纠结。如果有人可以建议我如何做到这一点,那将会很有帮助。

谢谢。

更改为 "superior" 长格式(这里我使用 tidyr::gather),然后将您的列映射到美学,使用具有堆叠位置的列 geom(条形图是一种特殊情况,它计算观察)。

library(tidyverse)

df <- read.table(text = "
Workload P1   P2   P3   P4
W1       0.3  0.2  0.4  0.1
W2       0.5  0.1  0.3  0.1
W3       0.2  0.3  0.4  0.1
W4       0.3  0.2  0.5  0.1", header = TRUE)


df_long <- df %>% 
  gather(P, value, P1:P4)

ggplot(df_long, aes(x = Workload, y = value, fill = P)) + 
  geom_col(position = position_stack())