可视化选择数据框不同行的多个箱线图
Visualize multiple box plot selecting differents rows of a dataframe
我正在开发 EDA(分布算法估计)。我得到了具有不同配置的 Pareto Front 解决方案的所有度量。
我有一个包含所有值的结构:
> metrics20
# A tibble: 320 x 6
File Hypervolume `Modified Hypervolume` Spread Spacing Time
<chr> <dbl> <dbl> <dbl> <dbl> <dbl>
1 001-unif-0.csv 25771 26294. 391. 30.1 16.8
2 002-unif-0.csv 27481 28416. 534. 41.1 16.5
3 003-unif-0.csv 26394 26842. 356. 29.6 16.5
4 004-unif-0.csv 30828 31696 418. 38.0 16.5
5 005-unif-0.csv 28146 28727 444. 34.2 16.6
6 006-unif-0.csv 30176 31006 451. 50.1 16.6
7 007-unif-0.csv 29374 30216 537. 35.8 16.5
8 008-unif-0.csv 27434 28156. 439. 31.4 16.5
9 009-unif-0.csv 28944 29426 471. 33.7 16.4
10 010-unif-0.csv 28339 29302. 576. 44.3 16.4
我想通过这种方式可视化这些值。我以 Hipervolume 列为例,我按文件列值拆分数据:-unif-, -sat-, -eff-
和 -prod-
分布,并在 x
轴上显示 -0.csv,-0.25.csv,-0.5.csv
和 -0.75.csv
的值对于相同的分布。
可重现的例子:
library(readr)
metrics20 <- read_csv("./metrics20.csv")
数据:Link
希望这是朝着您的目标迈出的一步:
library(readr)
library(dplyr)
library(ggplot2)
metrics20 <- read_csv("metrics20.csv")
metrics20 %>%
mutate(tag = factor(gsub("(^\d+-)(\w+)(-.*$)", "\2", .$File), levels = c("unif", "sat", "eff", "prod")),
level = gsub("(^\d+-\w+-)(.*)(\.csv$)", "\2", .$File)) %>%
ggplot(aes(x = level, y = Hypervolume)) +
geom_boxplot() +
facet_wrap(~tag, nrow = 1)+
theme_minimal() +
theme(panel.border = element_rect(colour = "black", fill = NA),
panel.grid = element_blank())
如果您需要将其调整为更像示例图,您可能还需要从这里调整其他内容。您应该能够在所用函数的帮助中找到所有后续步骤。
我正在开发 EDA(分布算法估计)。我得到了具有不同配置的 Pareto Front 解决方案的所有度量。
我有一个包含所有值的结构:
> metrics20
# A tibble: 320 x 6
File Hypervolume `Modified Hypervolume` Spread Spacing Time
<chr> <dbl> <dbl> <dbl> <dbl> <dbl>
1 001-unif-0.csv 25771 26294. 391. 30.1 16.8
2 002-unif-0.csv 27481 28416. 534. 41.1 16.5
3 003-unif-0.csv 26394 26842. 356. 29.6 16.5
4 004-unif-0.csv 30828 31696 418. 38.0 16.5
5 005-unif-0.csv 28146 28727 444. 34.2 16.6
6 006-unif-0.csv 30176 31006 451. 50.1 16.6
7 007-unif-0.csv 29374 30216 537. 35.8 16.5
8 008-unif-0.csv 27434 28156. 439. 31.4 16.5
9 009-unif-0.csv 28944 29426 471. 33.7 16.4
10 010-unif-0.csv 28339 29302. 576. 44.3 16.4
我想通过这种方式可视化这些值。我以 Hipervolume 列为例,我按文件列值拆分数据:-unif-, -sat-, -eff-
和 -prod-
分布,并在 x
轴上显示 -0.csv,-0.25.csv,-0.5.csv
和 -0.75.csv
的值对于相同的分布。
可重现的例子:
library(readr)
metrics20 <- read_csv("./metrics20.csv")
数据:Link
希望这是朝着您的目标迈出的一步:
library(readr)
library(dplyr)
library(ggplot2)
metrics20 <- read_csv("metrics20.csv")
metrics20 %>%
mutate(tag = factor(gsub("(^\d+-)(\w+)(-.*$)", "\2", .$File), levels = c("unif", "sat", "eff", "prod")),
level = gsub("(^\d+-\w+-)(.*)(\.csv$)", "\2", .$File)) %>%
ggplot(aes(x = level, y = Hypervolume)) +
geom_boxplot() +
facet_wrap(~tag, nrow = 1)+
theme_minimal() +
theme(panel.border = element_rect(colour = "black", fill = NA),
panel.grid = element_blank())
如果您需要将其调整为更像示例图,您可能还需要从这里调整其他内容。您应该能够在所用函数的帮助中找到所有后续步骤。