【问题标题】:How to generate medoid plots如何生成中心点图
【发布时间】:2012-04-15 14:01:04
【问题描述】:

您好,我正在使用聚类包中的 pam 函数围绕 medoids 算法进行聚类。我在聚类的数据集中有 4 个属性,它们似乎给了我大约 6 个聚类,我想在这 4 个属性中生成这些聚类的图,例如 1:http://www.flickr.com/photos/52099123@N06/7036003411/in/photostream/lightbox/“质心图”

但我可以绘制聚类结果的唯一方法是使用树状图或使用 plot (data, col = result$clustering) 命令似乎会生成与此类似的图 [2] : http://www.flickr.com/photos/52099123@N06/7036003777/in/photostream "pam 结果"。

虽然第一个图像是质心图,但我想知道 R 中是否有任何工具可以对中心图执行相同操作请注意,它还会打印图中每个簇的大小。很高兴知道 R 中是否有任何可用的包/解决方案有助于执行此操作,或者如果没有,为了实现类似于图 1 中的图,应该是一个好的起点。

谢谢

大家好,我试图按照 Joran 所说的方式解决问题,但我认为我没有正确理解它,并且没有按照应有的方式正确地解决问题。无论如何,这就是我到目前为止所做的。以下是我尝试集群的文件的样子

 geneID         RPKM-base       RPKM-1cm        RPKM+4cm        RPKMtip  
GRMZM2G181227   3.412444267     3.16437442      1.287909035     0.037320722  
GRMZM2G146885   14.17287135     11.3577013      2.778514642     2.226818648  
GRMZM2G139463   6.866752401     5.373925806     1.388843962     1.062745344  
GRMZM2G015295   1349.446347     447.4635291     29.43627879     29.2643755  
GRMZM2G111909   47.95903081     27.5256729      1.656555758     0.949824883 
GRMZM2G078097   4.433627458     0.928492841     0.063329249     0.034255945  
GRMZM2G450498   36.15941083     9.45235616      0.700105077     0.194759794  
GRMZM2G413652   25.06985426     15.91342458     5.372151214     3.618914949     
GRMZM2G090087   21.00891969     18.02318412     17.49531186     10.74302155 

以下是 Pam 聚类输出

GRMZM2G181227
1
GRMZM2G146885
2
GRMZM2G139463
2
GRMZM2G015295
2
GRMZM2G111909
2
GRMZM2G078097
3
GRMZM2G450498
3
GRMZM2G413652
2
GRMZM2G090087
2
AC217811.3_FG003
2

使用上面的两个文件,我生成了第三个文件,它有点像这样,具有簇类型 K1、K2 等形式的簇信息

geneID  RPKM-base       RPKM-1cm        RPKM+4cm        RPKMtip Cluster_type
GRMZM2G181227   3.412444267     3.16437442      1.287909035     0.037320722     K1
GRMZM2G146885   14.17287135     11.3577013      2.778514642     2.226818648     K2
GRMZM2G139463   6.866752401     5.373925806     1.388843962     1.062745344     K2
GRMZM2G015295   1349.446347     447.4635291     29.43627879     29.2643755      K2
GRMZM2G111909   47.95903081     27.5256729      1.656555758     0.949824883     K2
GRMZM2G078097   4.433627458     0.928492841     0.063329249     0.034255945     K3
GRMZM2G450498   36.15941083     9.45235616      0.700105077     0.194759794     K3
GRMZM2G413652   25.06985426     15.91342458     5.372151214     3.618914949     K2
GRMZM2G090087   21.00891969     18.02318412     17.49531186     10.74302155     K2

我当然不认为这是 joran 想要我创建的文件,但我想不出其他任何东西,因此我使用以下代码在上述文件上运行 lattice。

clusres<- read.table("clusinput.txt",header=TRUE,sep="\t");
jpeg(filename = "clusplot.jpeg", width = 800, height = 1078,
     pointsize = 12, quality = 100, bg = "white",res=100);
     parallel(~clusres[2:5]|Cluster_type,clusres,horizontal.axis=FALSE);
dev.off();

我得到一张这样的照片

因为我想要一条线作为整个集群在四个不同点的代表,所以这个输出是错误的而且我尝试使用 lattice 但我不知道如何让它接受 Rpkm 值作为 X 坐标它总是似乎在 Y 坐标上针对最大值或最小值绘制了很多线,我不明白它是什么。

如果有人能帮助我,那就太好了。对不起,如果我的问题对你来说仍然很荒谬。

【问题讨论】:

  • 大家好,我真的被这个问题困住了,我尝试了 Joran 给出的建议,但我没有清楚地理解它,所以我所做的可能比我应该做的错误。以下是我所做的。

标签: r plot cluster-analysis


【解决方案1】:

cluster 包中的clusplotpartitioning around medoids 一起使用怎么样?这是一个简单的示例(来自示例部分):

require(cluster)
#generate 25 objects, divided into 2 clusters.
x <- rbind(cbind(rnorm(10,0,0.5), rnorm(10,0,0.5)),
     cbind(rnorm(15,5,0.5), rnorm(15,5,0.5))) 
clusplot(pam(x, 2)) #`pam` does you partitioning

【讨论】:

    【解决方案2】:

    我不知道任何生成您指出的绘图的预建函数,这在我看来就像一种平行坐标绘图。

    但是生成这样的情节将是一个相当简单的练习。

    1. 根据聚类算法的输出,将一列聚类标签(K1、K2 等)添加到原始数据集中。

    2. 使用 R 中众多工具中的一种来聚合数据(plyraggregate 等),按集群计算四个变量中每一个变量的相关汇总统计数据. (您还没有说第一张图实际绘制的是什么。均值和标准差?中位数和 MAD?)

    3. 由于您希望将图分成六个单独的面板或面,您可能希望使用 ggplotlattice 来绘制数据,这两者它为创建相同的图提供了极好的支持,拆分为单个分组向量(即您的案例中的集群)。

    但鉴于您提供的信息太少(即没有最小的可运行示例,推荐 here),这与任何人都可以得到的一样具体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-09
      • 2021-05-27
      • 1970-01-01
      • 2016-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多