Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用R可视化k-means聚类?_R_Bioinformatics_K Means - Fatal编程技术网

如何使用R可视化k-means聚类?

如何使用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

我如何为我下面的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(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,可以得到两个轴上具有相同比例的多个子图的类似图像。但要获得更具体的帮助,您需要提供更合理的样本数据和特定的聚类。你问的问题太多了。