Проблема
Как изменить высоту каждого раздела / узла на диаграмме Санки 1004 *?Я хочу создать что-то вроде рисунка 1 ниже, где раздел «пол» маленький, затем раздел «потому что» большой, а затем раздел «возраст» снова маленький:
![Image 1](https://i.stack.imgur.com/gt9jR.png)
Мой вывод больше похож на Рисунок 2, где каждая секция (Топливо, Секторы, Конечное использование, Устройства преобразования) имеет одинаковую высоту:
![Image 2](https://i.stack.imgur.com/KzH5p.png)
Код:
library(ggplot2)
library(ggalluvial)
library(RColorBrewer)
dfs <- dftest[ , c("Hospital", "Paciente", "Terapia", "Unit")]
alpha <- 1
getPalette <- colorRampPalette(brewer.pal(12, "Set3"))
colourCount <- length(unique(dfs$Hospital))
ggplot(dfs,
aes(axis1 = Hospital, axis2 = Paciente, axis3=Terapia)) +
geom_alluvium(aes(fill = Hospital),
width = 1/12, alpha = alpha, knot.pos = 0.5) +
geom_stratum(width = 1/20) +
scale_x_continuous(breaks = 1:3, labels = c("Hospital", "Patient", "Therapy")) +
scale_fill_manual(values = getPalette(colourCount)) +
ggtitle("Teste") +
theme_minimal() +
theme( legend.position = "none", panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), axis.text.y = element_blank(),
axis.text.x = element_text(size = 12, face = "bold"))
У меня есть 3 секции / узлы, центры (24 уникальных), пациенты (750 уникальных) и методы лечения (10 уникальных).Итак, я подумал, что мог бы создать диаграмму Санки, подобную изображению 1. Ниже вы можете найти dput(dfs)
для составленного набора данных, поскольку мой набор данных слишком большой (750 человек), чтобы включать его сюда.
dput(dfs)
structure(list(Hospital = structure(c(1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L), .Label = c("1",
"2", "3", "4", "5"), class = "factor"), Paciente = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L,
3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L,
5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L,
6L, 6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L
), .Label = c("21", "22", "23", "24", "25", "26", "27"), class = "factor"),
Terapia = structure(c(2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L,
3L, 2L, 2L, 2L, 2L, 2L, 4L, 4L, 4L, 4L, 4L, 1L, 1L, 1L, 1L,
1L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L,
3L, 2L, 2L, 2L, 2L, 2L, 4L, 4L, 4L, 4L, 4L, 1L, 1L, 1L, 1L,
1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L), .Label = c("Adalimumab",
"Etanercept", "Infliximab", "Rituximab"), class = "factor"),
Unit = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)), class = "data.frame", row.names = c(NA,
-65L))
Может кто-нибудь, пожалуйста, посоветуйте?