在X轴上嵌套R中的子类别

yquaqz18  于 2023-09-27  发布在  其他
关注(0)|答案(1)|浏览(106)

我有一个数据集,我正在玩和学习R。我试图完成一个可视化的地方有一个特定的项目与数据的每个项目,我需要显示几个子类别的多个模型。每个模型具有相同的数据子类别,即模型A具有Spec1、Spec2、Spec3、Spec4和Spec5。我想列出模型A、模型B、模型C,并在每个模型上方显示它们各自的数据值。我已经将数据表从列出模型和每个子类别的一行旋转到显示不同数据子类别的每一行,在每一行中,您可能会多次看到模型。我不确定这是否是我需要争论的数据开始,但我发现一个教程显示了一个类似的可视化,为他们工作,但它不为我工作。我有点卡住了,我正在寻找如何快速有效地完成这一点的建议,因为我是R的新手。我不确定我是在问正确的问题,还是在一开始就试图正确地争吵。谢谢你的建议
我尝试了以下代码

barchart <- ggplot()
barchart <- barchart +
  geom_col(
    ata = dataset,
    aes(x = dataCategories, y = dataNumbers, ),
    position = "dodge"
  )
barchart

我也试过这个

barchart <- ggplot()
barchart <- barchart +
  geom_col(
    main.cat = c("productName"),
    second.cat = c("subcat1", "subcat2", "subcat3", "supcat4", "subcat5"),
    value = c("dataNumbers")
  )
yzuktlbb

yzuktlbb1#

像这样吗请注意,测试数据采用长格式。

suppressPackageStartupMessages({
  library(ggplot2)
  library(dplyr)
})

df1 %>%
  mutate(
    productName = factor(productName, levels = productName %>% unique()),
    subcat = sub("[[:alpha:]]+", "", subcat)
  ) %>%
  group_by(productName) %>%
  mutate(Group = interaction(subcat, productName, sep = "&")) %>% 
  ggplot(aes(Group, dataNumbers, group = subcat)) +
  geom_col(position = position_dodge(), fill = "steelblue") +
  labs(x = "Model", y = "Data Numbers") +
  guides(x = ggh4x::guide_axis_nested(delim = "&")) +
  theme_bw()

创建于2023-09-10使用reprex v2.0.2

测试数据

set.seed(2023)
Model <- sprintf("Model%s", LETTERS[1:3])
subcat <- sprintf("Spec%d", 1:5)
df1 <- expand.grid(subcat, Model)[2:1]
names(df1) <- c("productName", "subcat")
df1$dataNumbers <- sample(10:20, nrow(df1), TRUE)
df1
#>    productName subcat dataNumbers
#> 1       ModelA  Spec1          14
#> 2       ModelA  Spec2          18
#> 3       ModelA  Spec3          17
#> 4       ModelA  Spec4          12
#> 5       ModelA  Spec5          19
#> 6       ModelB  Spec1          11
#> 7       ModelB  Spec2          10
#> 8       ModelB  Spec3          10
#> 9       ModelB  Spec4          10
#> 10      ModelB  Spec5          10
#> 11      ModelC  Spec1          14
#> 12      ModelC  Spec2          17
#> 13      ModelC  Spec3          11
#> 14      ModelC  Spec4          12
#> 15      ModelC  Spec5          13

创建于2023-09-10使用reprex v2.0.2

相关问题