如何使用R可视化k-means聚类?
我如何为我下面的log2转换数据集(如附加图像)进行k-means聚类 我的示例df如下所示:如何使用R可视化k-means聚类?,r,bioinformatics,k-means,R,Bioinformatics,K Means,我如何为我下面的log2转换数据集(如附加图像)进行k-means聚类 我的示例df如下所示: set.seed(5) cnt_log2 = data.frame(replicate(6, runif(1000,0,20)), 1:10) names(cnt_log2) = c(paste0("Col",1:6),"geneID") 我使用了以下方法: res_km <- kmeans(df, 5, nstart = 10) data_plot <- data.table(melt
set.seed(5)
cnt_log2 = data.frame(replicate(6, runif(1000,0,20)), 1:10)
names(cnt_log2) = c(paste0("Col",1:6),"geneID")
我使用了以下方法:
res_km <- kmeans(df, 5, nstart = 10)
data_plot <- data.table(melt(data.table(class = as.factor(res_km$cluster), df)))
data_plot[, Time := rep(1:ncol(df), each = nrow(df))]
data_plot[, ID := rep(1:nrow(df), ncol(df))]
head(data_plot)
# prepare centroids
centers <- data.table(melt(res_km$centers))
setnames(centers, c("Var1", "Var2"), c("class", "Time"))
centers[, ID := class]
centers[, gr := as.numeric(as.factor(Time))]
head(centers)
head(data_plot)
# plot the results
ggplot(data_plot, aes(variable, value, group = ID)) +
facet_wrap(~class, ncol = 2, scales = "free_y") +
geom_line(color = "grey10", alpha = 0.65) +
geom_line(data = centers, aes(gr, value),
color = "firebrick1", alpha = 0.80, size = 1.2) +
labs(x = "Time", y = "Load (normalised)") +
theme_bw()
我想你在找一个平行坐标图。你可以使用MASS软件包中的parcoord来获得它。查看ggplot的facet_wrap,可以得到两个轴上具有相同比例的多个子图的类似图像。但要获得更具体的帮助,您需要提供更合理的样本数据和特定的聚类。你问的问题太多了。