Я хотел бы сделать график ggtern, чтобы я мог изменить размер каждой точки. По моим данным, у некоторых пациентов есть только 1 из 3 возможных композиций. В результате в вершине у меня перекрывается более 1 информации о пациенте, и я не хочу дрожать.
Что у меня есть:
library(compositions)
library(ggtern)
ds <- structure(list(`GC+` = c(1, 0, 9, 21, 2, 0, 0, 0, 4, 0, 0, 24,
0, 0, 1, 0, 0, 3, 3, 0, 5, 0, 0, 3, 0, 0, 0, 2, 11, 0, 0, 18,
13, 0, 6, 8, 0, 1, 0, 1, 23, 0, 1, 4, 5), `PC+` = c(5, 2, 8,
0, 6, 0, 0, 0, 10, 0, 0, 20, 0, 0, 2, 0, 0, 3, 3, 0, 0, 0, 10,
2, 0, 0, 0, 0, 10, 1, 0, 4, 8, 0, 1, 16, 1, 2, 0, 0, 18, 0, 0,
0, 1), `OT+` = c(0, 2, 7, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0,
0, 2, 5, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 12, 0, 0, 6, 3, 1, 0,
6, 0, 0, 0, 0, 3, 0, 0, 3, 0), size = c(1, 1, 1, 4, 1, 0, 0,
0, 1, 0, 3, 1, 0, 0, 1, 0, 3, 1, 1, 0, 4, 0, 1, 1, 0, 0, 0, 1,
1, 2, 0, 1, 1, 3, 1, 1, 2, 1, 0, 4, 1, 0, 4, 1, 1)), row.names = c(NA,
45L), class = "data.frame")
d.tern <- as.data.frame(acomp(ds))
size <- apply(d.tern, 2, function(x) {
sum(x==1)
})
ds$size <- ifelse(d.tern$`GC+` == 1, 4,
ifelse(d.tern$`PC+` == 1, 2,
ifelse(d.tern$`OT+` == 1, 3, 1)))
ds$size[is.na(ds$size)] <- 0
ggtern(data = ds, aes(`GC+`, `PC+`, `OT+`)) +
geom_mask() +
geom_point(fill="red", shape=21, size = 3) +
theme_bw() +
theme_showarrows() +
theme_clockwise() +
labs(x = "GC+", y = "PC+", z = "OT+",
title = "Composição dos Linfonodos Positivos")
Я бы хотелпередать размер от DS до geom_point
. Но это не работает.