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

Che*_*til 2 r data-visualization ggplot2 stacked-chart

我刚刚开始使用ggplot2()(数据可视化)R。我拥有的数据具有行格式的不同工作负载。这些列中的每一列都有四个不同的参数,我想将它们绘制为堆积条形图,最好使用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
Run Code Online (Sandbox Code Playgroud)

我想绘制Workloadx-axis,然后P1P2P3并将P4针对 上的每个工作负载进行堆叠y-axis

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

谢谢。

Jac*_*kes 5

更改为“高级”长格式(这里我使用tidyr::gather),然后将您的列映射到美学,并使用具有堆叠位置的列几何(条形是计算观察数量的特殊情况)。

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())
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述