在 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
然后 P1
、P2
、P3
和 P4
将分别堆叠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())
我刚开始在 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
然后 P1
、P2
、P3
和 P4
将分别堆叠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())