Я хочу создать рамочную диаграмму, чтобы визуализировать распределение нескольких числовых переменных с одинаковым масштабом по отношению к одной категориальной переменной, чтобы увидеть поведение между различными показателями для одного указанного c уровня фактора.
Например, я хочу посмотреть, насколько отличается количество (в тысячах долларов) отгрузок, которые заказывают 3 потребителя по типу продукта. Возьмите данные этого примера:
prueba <- data.frame("client1" = truncnorm::rtruncnorm(n = 60, a = 1, b = 9.8, mean = 6.5, sd = 1),
"client2" = truncnorm::rtruncnorm(n = 60, a = 1, b = 9.8, mean = 6.9, sd = 2),
"client3" = truncnorm::rtruncnorm(n = 60, a = 1, b = 9.8, mean = 5, sd = 3),
"type" = as.factor(sample(LETTERS[1:3], 60, replace = T, prob = c(0.4,0.35,0.25))),
"cat" = as.factor(sample(LETTERS[20:22], 60, replace = T, prob = c(0.5, 0.1,0.4))))
prueba[,1:3] <- round(prueba[,1:3], 1)
head(prueba)
# client1 client2 client3 type cat
#1 6.3 7.2 7.0 B T
#2 7.2 6.5 3.5 C T
#3 8.0 6.4 8.0 A V
#4 8.0 7.4 7.0 A V
#5 7.5 7.6 2.5 B V
#6 7.0 9.0 3.7 A V
С ggplot я могу сделать это:
library(tidyverse)
library(patchwork)
uno <- prueba %>% ggplot(aes(x = type,
y = client1)) +
geom_boxplot()+scale_y_continuous(limits = c(0,10))
dos <- prueba %>% ggplot(aes(x = type,
y = client2)) +
geom_boxplot()
tres <- prueba %>% ggplot(aes(x = type,
y = client3)) +
geom_boxplot()
uno+dos+tres+plot_layout(byrow = F)
Я получаю это: Различия в распределениях:
Однако я хочу что-то вроде этого: Что-то вроде этого:
Но вместо этого ось x будет заполнена другой категорией ie Я хочу, чтобы он был заполнен дистрибутивом каждого клиента.
Возможно ли это?
Как я могу сделать это в R?
Существуют другие методы визуализации для того же?