Я пытаюсь увидеть распределение точек данных в маркированных группах на трехмерном графике, потому что я хочу видеть распределение точек данных и хочу увидеть, насколько похожа каждая группа точек данных в трехмерном пространстве.Для этого я использовал пакет scatterplot3d из CRAN, чтобы получить 3D для точечного графика, но не получил правильный график для моих данных.
воспроизводимые данные
Вотвоспроизводимые данные, которые я использовал.
> dput(head(phenDat,30))
structure(list(SampleID = c("Tarca_001_P1A01", "Tarca_013_P1B01",
"Tarca_025_P1C01", "Tarca_037_P1D01", "Tarca_049_P1E01", "Tarca_061_P1F01",
"Tarca_051_P1E03", "Tarca_063_P1F03", "Tarca_075_P1G03", "Tarca_087_P1H03",
"Tarca_004_P1A04", "Tarca_064_P1F04", "Tarca_076_P1G04", "Tarca_088_P1H04",
"Tarca_005_P1A05", "Tarca_017_P1B05", "Tarca_054_P1E06", "Tarca_066_P1F06",
"Tarca_078_P1G06", "Tarca_090_P1H06", "Tarca_007_P1A07", "Tarca_019_P1B07",
"Tarca_031_P1C07", "Tarca_079_P1G07", "Tarca_091_P1H07", "Tarca_008_P1A08",
"Tarca_020_P1B08", "Tarca_022_P1B10", "Tarca_034_P1C10", "Tarca_046_P1D10"
), GA = c(11, 15.3, 21.7, 26.7, 31.3, 32.1, 19.7, 23.6, 27.6,
30.6, 32.6, 12.6, 18.6, 25.6, 30.6, 36.4, 24.9, 28.9, 36.6, 19.9,
26.1, 30.1, 36.7, 13.6, 17.6, 22.6, 24.7, 13.3, 19.7, 24.7),
Batch = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 4L, 4L, 5L, 5L, 6L,
6L, 6L, 6L), Set = c("PRB_HTA", "PRB_HTA", "PRB_HTA", "PRB_HTA",
"PRB_HTA", "PRB_HTA", "PRB_HTA", "PRB_HTA", "PRB_HTA", "PRB_HTA",
"PRB_HTA", "PRB_HTA", "PRB_HTA", "PRB_HTA", "PRB_HTA", "PRB_HTA",
"PRB_HTA", "PRB_HTA", "PRB_HTA", "PRB_HTA", "PRB_HTA", "PRB_HTA",
"PRB_HTA", "PRB_HTA", "PRB_HTA", "PRB_HTA", "PRB_HTA", "PRB_HTA",
"PRB_HTA", "PRB_HTA"), Train = c(1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), Platform = c("HTA20",
"HTA20", "HTA20", "HTA20", "HTA20", "HTA20", "HTA20", "HTA20",
"HTA20", "HTA20", "HTA20", "HTA20", "HTA20", "HTA20", "HTA20",
"HTA20", "HTA20", "HTA20", "HTA20", "HTA20", "GSE113966", "GSE113966",
"GSE113966", "GSE113966", "GSE113966", "GSE113966", "GSE113966", "GSE113966", "GSE113966",
"GSE113966")), row.names = c(NA, 30L), class = "data.frame")
моя попытка :
hclustfunc <- function(x) hclust(x, method="complete")
distfunc <- function(x) as.dist((1-cor(t(x)))/2)
d <- distfunc(persons_df)
fit <- hclustfunc(d)
моя обновленная попытка :
library(rgl)
library(car)
scatter3d(x = PC1, y = PC2, z = PC3, surface = FALSE, groups = as.factor(clusters), surface.col = cluster.colors, col = cluster.colors, xlab="PC1",ylab="PC2",zlab="PC3")
По сути, я хочу видеть точки данных (иначе, строки), которые принадлежат разным партиям (или группам), которые хотят покрасить их с помощью некоторого атрибута 'group'.Я просто хочу увидеть, как точки данных похожи друг на друга, если мы сгруппировали их по разным возрастным категориям, разным партиям и разным платформам
Я думаю использовать kmeans, PCA, другие методы могут дать мне разные компонентыэто можно визуализировать на 3D-графике, но мне не очень понятно, как это сделать в R?
желаемый график :
Я хочу получить 3D-графикчто-то вроде этого:
Может кто-нибудь указать мне, как я могу это сделать?Любой способ получить мои данные и визуализировать их в 3D-графике в R?Какие-нибудь мысли?Спасибо
обновление: возможны самые простые вещи :
Во-первых, я не хочу получать слишком сложное решение, я просто хочу сгруппировать точки данных (ака, каждый ряд), который принадлежит к разным партиям, платформам и возрастным категориям (я использовал findInterval(persons_df$ages, c(10,20,30,40,50))
).Есть ли способ сделать это в R?