首页 > 解决方案 > 使用 ggplot 和 Rshiny 创建交互式条形图

问题描述

第一次在 Stack Overflow 上提问

我无法创建条形图,希望能够根据某些字段进行过滤。我正在使用一些敏感数据,但我会尽量清楚我正在使用的数据类型。数据设置在排序层次结构中,例如数据如下:

项目 -> 子项目 -> 子子项目,以及每个月的值(一月、二月、三月等),共 15 列。

csv 中的每一行对每个元素都有一个值,因此 Project 列有很多重复值,因为它是层次结构的顶部,子项目也有相当多的重复值,因为它低一级。

我的目标是创建一个条形图,将层次结构中的每个唯一值分组,同时在 x 轴上显示月份,在 y 轴上显示月份的值。

因此,具有相同项目、子项目的所有值将组合在一起,在 x 轴上显示月份。

我曾尝试使用 ggplot2 库来尝试根据层次结构对值进行分组,但它看起来并不是最好的,它正在聚合值而不是显示条目的唯一值。

plot <- ggplot(data=data, aes(x= Sub-Project, y = January, fill = Sub-SubProject)) +
  geom_bar(stat="identity", position = "dodge") + 
  facet_grid(~Project, scales = "free_x", space = "free") + 
  theme(axis.text.x = element_text(angle = 90, hjust = 1)) + 
  geom_text(aes(label=Capacity.1),hjust=0, vjust=0)

我想避免使用填充,因为我想自己有条件地设置颜色,但这是另一个问题。我能够在一定程度上复制我在 Tableau 上寻找的东西,但现在交付物必须在 R 中。

一般来说,我不希望聚合,但每个条目都有一个唯一的栏,按我上面所说的层次结构分组。

标签: r

解决方案


推荐阅读