关键词:
【中文标题】执行双聚类(行和列)后如何在 heatmap.2 上添加 ColSideColors【英文标题】:How to add ColSideColors on heatmap.2 after performing bi-clustering (row and column) 【发布时间】:2014-04-12 06:39:59 【问题描述】:我有以下代码:
library(gplots)
library(RColorBrewer);
setwd("~/Desktop")
mydata <- mtcars
hclustfunc <- function(x) hclust(x, method="complete")
distfunc <- function(x) dist(x,method="euclidean")
d <- distfunc(mydata)
fit <- hclustfunc(d)
clusters <- cutree(fit, h=100)
nofclust.height <- length(unique(as.vector(clusters)));
# Colorings
hmcols <- rev(redgreen(2750))
selcol <- colorRampPalette(brewer.pal(12,"Set3"))
selcol2 <- colorRampPalette(brewer.pal(9,"Set1"))
clustcol.height = selcol2(nofclust.height);
heatmap.2(as.matrix(mydata),
trace='none',
dendrogram='both',
key=F,
Colv=T,
scale='row',
hclust=hclustfunc, distfun=distfunc, col=hmcols,
symbreak=T,
margins=c(7,10), keysize=0.1,
lwid=c(5,0.5,3), lhei=c(0.05,0.5),
lmat=rbind(c(5,0,4),c(3,1,2)),
labRow=rownames(mydata),
#ColSideColors=clustcol.height[clusters], # This line doesn't work
RowSideColors=clustcol.height[clusters])
产生下图:
我想要做的是在行和列上执行聚类,并在树状图旁边显示聚类条(RowSideColors 和 ColSideColors)。我怎样才能做到这一点?
目前我只成功展示了RowSideColors
但没有显示ColSideColors
之一。
【问题讨论】:
【参考方案1】:为了同时显示RowSideColors
和ColSideColors
,您必须分别获取矩阵行和列的聚类分配。目前,对象“集群”包含仅对应于行的集群。
# set the custom distance and clustering functions, per your example
hclustfunc <- function(x) hclust(x, method="complete")
distfunc <- function(x) dist(x, method="euclidean")
# perform clustering on rows and columns
cl.row <- hclustfunc(distfunc(mydata))
cl.col <- hclustfunc(distfunc(t(mydata)))
# extract cluster assignments; i.e. k=8 (rows) k=5 (columns)
gr.row <- cutree(cl.row, 8)
gr.col <- cutree(cl.col, 5)
# require(RColorBrewer)
col1 <- brewer.pal(8, "Set1")
col2 <- brewer.pal(5, "Pastel1")
# require(gplots)
heatmap.2(as.matrix(mydata), hclustfun=hclustfunc, distfun=distfunc,
RowSideColors=col1[gr.row], ColSideColors=col2[gr.col])
您可以使用plot(cl.row)
和plot(cl.col)
检查聚类先验。您也可以使用RColorBrewer
库来选择最合适的颜色编码。顺序调色板可能会更好地避免过度着色。
【讨论】:
qubic双聚类学习以及代码编写运行(代码片段)
QUBIC介绍一种双聚类算法,就其在生物数据解释中的效率和有效性而言,QUIBIC被公认为是最佳的双聚类方法之一。软件包该软件包提供了QUBIC算法的R实现,具有显着提高的效率和完善的功能。说明书http://bioconductor.org/packages/QUBIC前... 查看详情
绘制二维矩阵的行和列
...题:我们给出了一个nxm矩阵,初始初始化为0。我们必须执行k个查询:每个查询都支持两种操作之一。用颜色ai绘制ri行中的所有元素。用颜色ai绘制ci列中的所有元素。同一元素可以多次绘制。但是该元素的颜色与该元素的最后... 查看详情
如何在 VBA 中显示选择查询的行和列值
】如何在VBA中显示选择查询的行和列值【英文标题】:howtodisplaytherowsandcolumnsvaluesinVBAforselectquery【发布时间】:2016-09-1400:27:24【问题描述】:我的实际代码如下:PrivateSubWorksheet_BeforeDoubleClick(ByValTargetAsRange,CancelAsBoolean)CallextractEnd... 查看详情
如何在 PostgreSQL 中转置列和行(即如何切换行和列)? [复制]
】如何在PostgreSQL中转置列和行(即如何切换行和列)?[复制]【英文标题】:HowtotransposecolumnsandrowsinPostgreSQL(i.e.,howdoIswitchrowsandcolumns)?[duplicate]【发布时间】:2012-10-2918:59:14【问题描述】:可能重复:Transposingansqlresultsothatonecolumng... 查看详情
悬停在表格上时如何突出显示表格的行和列?
】悬停在表格上时如何突出显示表格的行和列?【英文标题】:Howtohighlightatable\'srowandcolumnwhenhoveringoverit?【发布时间】:2019-06-0918:10:44【问题描述】:我想做与此示例完全相同的操作:http://jsfiddle.net/ThinkingStiff/rUhCa/。但是,当... 查看详情
excel怎么进行行列转换,excel如何转换行和列
参考技术A1."excel中如何进行行列转换,为您提供excel中如何进行行列转换图文信息,打开Excel文档,选中需要装换的表格。2.在开始里找到粘贴,选择下拉栏里的选择性粘贴。3.在弹出的选择性粘贴窗口中,勾选转置选项并点... 查看详情
如何在android中以编程方式创建表格行和列边框
】如何在android中以编程方式创建表格行和列边框【英文标题】:Howtocreatetablerowandcolumnborderfromprogrammaticallyinandroid【发布时间】:2014-03-1916:22:05【问题描述】:我关注HowcanIcreateatablewithbordersinAndroid?这非常有帮助,但在我的情况下... 查看详情
我们如何在 ext js 4.2 中突出显示网格面板的行和列?
】我们如何在extjs4.2中突出显示网格面板的行和列?【英文标题】:howcanwehighlighttherowandcolumnofthegridpanelinextjs4.2?【发布时间】:2015-01-0819:00:12【问题描述】:我们如何在选择网格面板时突出显示当前行和列?我可以突出显示行而... 查看详情
如何在 PyQt5 中保持行和列大小与网格布局相同?
】如何在PyQt5中保持行和列大小与网格布局相同?【英文标题】:HowcanIkeeprowandcolumnsizethesamewiththegridlayoutinPyQt5?【发布时间】:2021-11-2022:20:38【问题描述】:我正在尝试为国际象棋游戏创建GUI。我正在使用网格布局,当主窗口打... 查看详情
如何以编程方式将组件分配给 Delphi GridPanel 行和列?
】如何以编程方式将组件分配给DelphiGridPanel行和列?【英文标题】:HowtoassignacomponenttoaDelphiGridPanelrowandcolumnprogrammatically?【发布时间】:2017-05-2622:48:49【问题描述】:我正在使用Delphi开发一个项目,我正在动态地为GridPanel制作行... 查看详情
java示例代码_JAVA——如何在2D数组中查找行和列中的重复值
java示例代码_JAVA——如何在2D数组中查找行和列中的重复值 查看详情
如何在平面文件连接管理器编辑器中使用设置行和列分隔符
】如何在平面文件连接管理器编辑器中使用设置行和列分隔符【英文标题】:Howtousesetrowandcolumndelimiterinflatfileconnectionmanagereditor【发布时间】:2019-11-2510:34:33【问题描述】:我正在尝试为平面文件连接管理器设置行和列分隔符这... 查看详情
如何在使用数据表加载页面时为所有行和列动态添加复选框?
】如何在使用数据表加载页面时为所有行和列动态添加复选框?【英文标题】:HowtoaddacheckboxdynamicallyforallrowsandcolumnswhilepageonloadwithDatatables?【发布时间】:2017-12-2123:14:28【问题描述】:在加载数据表时,我需要在所有行和列标题... 查看详情
如何在 Xampp 上使用 MariaDB 将 XML 文件转换为行和列?
】如何在Xampp上使用MariaDB将XML文件转换为行和列?【英文标题】:HowtoconvertanXMLfiletorowsandcolumnsusingMariaDBonXampp?【发布时间】:2017-12-0904:53:29【问题描述】:我有一个如下所示的XML文件:<users><rowId="4"Reputation="27228"CreationDate=... 查看详情
如何在iOS中的按钮数组中检索所选按钮的行和列
】如何在iOS中的按钮数组中检索所选按钮的行和列【英文标题】:HowtoretrievetherowandcolofselectedbuttoninanarrayOfbuttonsiniOS【发布时间】:2011-11-1706:43:00【问题描述】:假设我使用以下代码创建了一个2DArray按钮:for(NSIntegerrowIndex=0;rowInde... 查看详情
如何修复 CListctrl 中的行和列重复
】如何修复CListctrl中的行和列重复【英文标题】:HowtofixrowandcolumnrepetitioninCListctrl【发布时间】:2015-05-2507:52:16【问题描述】:如何在MFC中修复CListctrl中的行列重复。intnItem=0;m_list.InsertColumn(0,_T("Name"),LVCFMT_LEFT,100);m_list.InsertColumn(1... 查看详情
Python - 如何在 Python 中从 Google 表格中读取特定范围的行和列?
】Python-如何在Python中从Google表格中读取特定范围的行和列?【英文标题】:Python-HowtoreadspecificrangeofrowsandcolumnsfromGoogleSheetinPython?【发布时间】:2022-01-2110:15:30【问题描述】:在GoogleSheet中有类似下面的数据需要读取从\'A4到C4\'列... 查看详情
在 sqlite 查询中如何获取具有所需值的特定行和列
】在sqlite查询中如何获取具有所需值的特定行和列【英文标题】:Insqlitequeryhowtogetaspecificrowandcolumnthathastherequiredvalue【发布时间】:2014-05-3007:07:33【问题描述】:我正在尝试构建一个测验应用程序,数据库中的条目如下所示id|term... 查看详情