【问题标题】:Rows As Stacked Bar Plot Using ggplot2 In R在 R 中使用 ggplot2 将行作为堆积条形图
【发布时间】:2018-05-16 21:34:00
【问题描述】:

我刚刚开始使用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() 参数和参数缠住了。如果有人可以建议我如何做到这一点,那将会很有帮助。

谢谢。

【问题讨论】:

  • 您需要使用meltgather 将数据转换为长格式。除非您共享示例数据,否则无法真正帮助您。
  • @Gregor - 我已经编辑了这个问题。在完成问题之前不小心按了 Enter。

标签: r ggplot2 data-visualization stacked-chart


【解决方案1】:

更改为“高级”长格式(这里我使用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())

【讨论】:

  • .@JackBrookes - 谢谢,它成功了。我正在尝试将颜色更改为灰度,并将scale_fill_grey(start = 0, end = .9) 添加到您的代码中。这为堆叠列的每个块提供了不同的灰度级。是否可以将灰度更改为this
  • ggplot 不支持纹理填充,但你可以有任何你喜欢的颜色
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 2016-06-29
  • 2019-01-14
  • 1970-01-01
  • 2017-06-17
  • 2011-10-05
  • 1970-01-01
相关资源
最近更新 更多