Диаграмма Санки Diagram) Тип диаграммы, используемый для визуализации потока данных. Часто используется для отображения потока и распределения данных, энергии, материалов, денег или других ресурсов между различными частями системы. Диаграмма Санки представляет размер потока через линии тока переменной ширины (т. Е. Чем шире линии тока, тем больше представленный объем потока). Он отлично подходит для демонстрации сложных систем, процессов или отношений между несколькими категориями.
Основные компоненты диаграммы Санки
Преимущества диаграммы Санки
Инструменты для построения диаграмм Санки
Так что я не думаю, что нам нужно придерживаться R. Такой график можно нарисовать как можно быстрее~
rm(list = ls())
library(ggplot2)
library(tidyverse)
load("./data.Rdata")
df1 <- data
head(df1)
# gender lymph_neck_dissection alcohol
# TCGA-CR-7374-01A FEMALE NO YES
# TCGA-CV-A45V-01A FEMALE NO NO
# TCGA-CV-7102-01A FEMALE YES YES
# TCGA-MT-A67D-01A MALE YES YES
# TCGA-P3-A6T4-01A MALE YES YES
# TCGA-CV-7255-01A FEMALE NO YES
colnames(df1)
conver_res <- to_lodes_form(df1,
axes = 1:ncol(df1),
key = "x",
value = "stratum",
id = "alluvium")
color <- c("#9079ad","#7ebea5","#d8a373","#f09199",
"#8d6449","#4c6cb3","#fef263","#ce5242")
pdf(file="sankey_with.pdf", width=8, height=6)
ggplot(conver_res,
aes(x = x, stratum = stratum, alluvium = alluvium,
fill = stratum, label = stratum)) +
scale_fill_manual(values = color) +
geom_flow(width = 0.4, aes.flow = "forward") +
geom_stratum(alpha = 0.8, width = 0.4) +
# Отрегулируйте положение меток узлов
geom_text(data = subset(conver_res, x != "status"),
stat = "stratum", size = 5, color = "black", family = "serif",
vjust = -1.5, hjust = 0.5) + # Корректирование vjust и hjust Совместите этикетки с полосками
geom_text(data = subset(conver_res, x == "status"),
stat = "stratum", size = 5, color = "black", family = "serif",
vjust = -1.5, hjust = 0.5) + # Соответствующее место корректировки
# Корректирование% позиции,Избегайте дублирования ярлыков
geom_text(aes(label = sprintf("%.1f%%", after_stat(prop) * 100)),
stat = "слот", размер = 4,5, vjust = 1,5, hjust = 0,5, цвет = "черный",
Family = "serif", check_overlap = TRUE) +
theme_classic() +
theme(axis.line = element_blank(), axis.ticks = element_blank(),
axis.text.y = element_blank()) +
тема(panel.grid = element_blank()) +
тема(panel.border = element_blank()) +
theme(axis.text.x = element_text(size = 15, семейство = "засечки", цвет = "черный")) +
хлаб("") +
ylab("") +
ggtitle("") +
направляющие (fill = «нет»)
dev.off()
Настройка этикетки имеет решающее значение! Процент необходимо корректировать вручную, что на самом деле довольно хлопотно.
Настройте вертикальное (vjust) и горизонтальное выравнивание (hjust) меток:
Изменяя vjust, вы можете контролировать перемещение меток и процентов вверх и вниз.
Изменяя hjust, вы можете контролировать перемещение меток и процентов влево и вправо.
Примечание:Если у вас есть какие-либо сомнения относительно содержания или вы обнаружили явную ошибку,,Пожалуйста, свяжитесь с серверной частью(Добро пожаловать для общения)。更多内容可закрывать Примечание Официальный аккаунт:Ковчег рождения
- END -