【问题标题】:How do you use ggplot2 to create boxplots when the groupings overlap?当分组重叠时,如何使用 ggplot2 创建箱线图?
【发布时间】:2021-06-17 15:00:11
【问题描述】:

我有一组数据,其中包含一个输出变量和一组标签。我面临的问题是标签不是相互排斥的。例如,假设我正在分析绘画,并且正在查看绘画的价格和用于创作它的颜色。我会有一个如下所示的数据集:

Price Colors Used
10 Red, Black, Blue
12.5 Red, Green, Yellow, Black, purple
11 Blue, White
15 Red

我想使用 ggplot2 为所用颜色中包含“红色”的所有行创建一个价格箱线图,然后对“紫色”、“黑色”等执行相同的操作。但问题是我遇到的是,如果我简单地写,GGplot2 会将这些标签中的每一个都视为唯一的

ggplot(aes(x=colors, y=price))+
geom_boxplot()

有人知道解决这个问题的好方法吗?

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    您可以使用tidyr::separate_rows() 来准备您的数据:

    library(tidyr)
    library(ggplot2)
    
    your_data %>%
      separate_rows(Colors.Used) %>%
      ggplot() +
        geom_boxplot(aes(x = Colors.Used, y = Price))
    

    结果:

    使用的数据:

    your_data <- tibble::tribble( ~Price, ~Colors.Used, 10, "Red, Black, Blue", 12.5, "Red, Green, Yellow, Black, purple", 11, "Blue, White", 15, "Red")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-28
      • 1970-01-01
      相关资源
      最近更新 更多