- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数据,我想用树状图聚类为列绘制热图。
我怎样才能做到这一点?
数据只有一行多列。
请注意,我确实想要列上的集群,而不是将其转换为行集群。
这是我的代码,它不起作用。
library(gplots)
library(RColorBrewer)
dat.all <- structure(list(Probes = structure(1L, .Label = "1419598_at", class = "factor"),
XXX_LV_06.ip = 0.985, XXX_SP_06.ip = 0.932, XXX_LN_06.id = 2.115,
XXX_LV_06.id = 1.753, XXX_SP_06.id = 2.668, ZZZ_KD_06.ip = 10.079,
ZZZ_LG_06.ip = 2.323, ZZZ_LV_06.ip = 2.119, ZZZ_SP_06.ip = 4.157,
ZZZ_LN_06.id = 1.371, ZZZ_LV_06.id = 1.825, ZZZ_SP_06.id = 1.457,
ZZZ_KD_24.ip = 0L, ZZZ_LG_24.ip = 1.049, ZZZ_LV_24.ip = 1.372,
ZZZ_SP_24.ip = 1.83, AAA_LN_06.id = 1.991, AAA_LV_06.ip = 2.555,
AAA_SP_06.ip = 4.209, AAA_LV_06.id = 1.375, AAA_SP_06.id = 0.75,
GGG_LV_06.ip = 5.938, GGG_SP_06.ip = 8.326, GGG_LN_06.id = 1.982,
GGG_LV_06.id = 0.779, GGG_SP_06.id = 1.383, KKK_LN_06.id = 2.006,
KKK_LV_06.ip = 1.253, KKK_SP_06.ip = 1.774, X333_LV_06.id = 1.792,
X333_SP_06.id = 1.408, EEE_LV_06.in = 0.881, EEE_SP_06.in = 1.374,
DDD_LN_06.id = 2.052, DDD_LV_06.id = 1.363, DDD_SP_06.id = 1.678), .Names = c("Probes",
"XXX_LV_06.ip", "XXX_SP_06.ip", "XXX_LN_06.id", "XXX_LV_06.id",
"XXX_SP_06.id", "ZZZ_KD_06.ip", "ZZZ_LG_06.ip", "ZZZ_LV_06.ip",
"ZZZ_SP_06.ip", "ZZZ_LN_06.id", "ZZZ_LV_06.id", "ZZZ_SP_06.id",
"ZZZ_KD_24.ip", "ZZZ_LG_24.ip", "ZZZ_LV_24.ip", "ZZZ_SP_24.ip",
"AAA_LN_06.id", "AAA_LV_06.ip", "AAA_SP_06.ip", "AAA_LV_06.id",
"AAA_SP_06.id", "GGG_LV_06.ip", "GGG_SP_06.ip", "GGG_LN_06.id",
"GGG_LV_06.id", "GGG_SP_06.id", "KKK_LN_06.id", "KKK_LV_06.ip",
"KKK_SP_06.ip", "X333_LV_06.id", "X333_SP_06.id", "EEE_LV_06.in",
"EEE_SP_06.in", "DDD_LN_06.id", "DDD_LV_06.id", "DDD_SP_06.id"
), row.names = 1L, class = "data.frame")
# Clustering and distance function
hclustfunc <- function(x) hclust(x, method="complete")
distfunc <- function(x) dist(x,method="maximum")
height <- 3;
outdir <- "./";
# Define output file name
heatout <-paste(outdir,base,"myplot.pdf",sep="");
# require(RColorBrewer)
col1 <- colorRampPalette(brewer.pal(12, "Set3"));
col2 <- colorRampPalette(brewer.pal(9, "Set1"));
cl.col <- hclustfunc(distfunc(t(dat.all)))
# extract cluster assignments; i.e. k=8 (rows) k=5 (columns)
gr.col <- cutree(cl.col, h=3)
gr.col.nofclust <- length(unique(as.vector(gr.col)));
clust.col.height <- col2(gr.col.nofclust);
hmcols <- rev(redgreen(2750));
pdf(file=heatout,width=50,height=25);
heatmap.2(as.matrix(dat.all),
scale='row',
trace='none',
Rowv=FALSE,
col=hmcols,
symbreak=T,
hclustfun=hclustfunc,
distfun=distfunc,
keysize=0.1,
margins=c(10,200),
lwid=c(1,4), lhei=c(0.7,3),
ColSideColors=clust.col.height[gr.col])
dev.off();
最佳答案
您是否明确需要使用 heatmap.2()
功能?如果没有,那么我建议你考虑函数pheatmap()
来自包 pheatmap,因为它允许您以相当少的体操完成您所追求的壮举。
首先,我会去掉数据集中的第一列。但是,为了保留信息,我将 Affymetrix ID 作为行名称放在数据框中:
rownames(dat.all)<-dat.all[,1]
dat.all<-dat.all[,-1]
pheatmap()
.它的工作原理与
heatmap.2()
非常相似。 ,但参数的名称不同。以下命令应该可以让您完成剩下的工作或接近它:
require(pheatmap)
pheatmap(dat.all, cluster_rows=FALSE, color=hmcols, scale="row",
annotation.colors=clust.col.height[gr.col], annotation=t(dat.all),
clustering_distance_cols=distfunc(t(dat.all)))
pheatmap()
的输入。使用参数 clustering_distance_cols。请查阅 pheatmap 包的帮助以获取更多详细信息。另外,请参见下面的示例图。
关于r - 如何仅对 R heatmap.2 中的列进行聚类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22523386/
我正在使用 Java 类 HeatMap(作者: http://www.mbeckler.org/heatMap/ )为我的矩阵生成热图。我想实现一个鼠标监听器,当鼠标位于图像(热图)上的某个位置时,
我正在绘制热图,我不希望行名和列名在 x 轴和 y 轴上可见。 所以我使用了下面的代码: heatmap.2(data, xlab="PROTEINS", ylab="DRUGS", labRow=F
很抱歉,如果这个问题已在其他地方得到解答,但我无法找到解决方案...... 我有scatterplot数据、x和y以及颜色数据c(所有这些都是向量)。 x = rand(100,1); y = ran
我想从我的数据表中过滤掉 FTE 值为 0 的行,但前提是从我的热图中选择了一个框。如果未选择任何框,则数据表应显示 FTE 值为 0 的行。 我找到了这个:https://groups.google
我有一个制表符分隔的数据文本文件 (Data.txt),其中包含 13 列和 90 行。它有一个标题行(样本值),第一列是样本名称。 当我将数据加载到数据矩阵时,我的第一列样本名称没有显示。它们都被
我正在尝试在 Holoviews 中为每个点生成一个具有自定义颜色值的热图,以便指定不同的 alpha 颜色值。 目前我正在生成两个具有不同 alpha 值的 Holoviews 图并像这样叠加它们:
这个问题在这里已经有了答案: How to create pre-annotated rowside column in heatmap.2 (2 个回答) 4年前关闭。 我有以下 MWE,我在其中制
我正在尝试使用 heatmap.2 在一定范围内绘制值矩阵。列是范围(例如,0 到 100)。列标签太多,无法清晰显示。有没有办法显示每第 N 个(0、10、20 等)?我希望显示所有值,但我不希望它
我正在绘制一个 759*12 双矩阵 twoway.expr.005使用 heatmap.2() library(gplots) dist2 <- function(x, ...){as.dist(1
我有关于包裹的问题 gplots .我想使用功能heatmap.2因此我想将颜色键中的对称点从 0 更改为 1。通常在 symkey=TRUE 时然后您使用 col=redgreen() ,创建一个颜
我正在尝试将 heatmap.js 与 Google map 集成以进行一些可视化工作。我提到了这个: http://www.patrick-wied.at/static/heatmapjs/exam
我生成了这样的热图: X 轴和 Y 轴标签未完全显示。我的代码在这里: heatmap.2(x,col=blueyelred,colsep=c(1:6),rowsep=(1:62),
我有以下代码来显示热图上方的颜色键。但是颜色键在热图的顶部(稍微向右移动)并不精确。有谁知道如何使颜色不改变?另外,如何删除热图右侧的空白?谢谢。 library(gplots) heatmap.2(
有谁知道为什么我的 heatmap.2 结果有奇怪的颜色——绿松石不属于我的红/黑/绿调色板?绿松石似乎是指基于样本聚类的信息(我“错误”编辑出的行树状图),而不是基于特征聚类的信息。这是怎么回事?
我正在尝试使用 heatmap.2(下面的代码)生成一些对数转换的倍数变化数据图。 我想按照最后一列中的值(从大到小)对热图中的行进行排序。这些行正在自动排序(我不确定“幕后”使用的精确计算),如图所
我正在使用 github 中 pa7 的 heatmap.js 库成功制作一些热图 http://www.patrick-wied.at/static/heatmapjs/example-heatma
所以我需要在 seaborn 中创建大量具有不同数据尺度的热图。一些范围从 0-100 和一些 +100 到 -100。我需要做的是在所有图表中保持相同的颜色分级。因此,例如,我希望任何低于 0 的东
我正在为我的应用程序尝试热图,但我认为我的代码中缺少一些东西,因为它不起作用。 JSFiddle 下面是我的代码: var domElement = document.getE
首先,我正在使用 ReactJS 和 heatmap.js 库。 用作 heatmap.js 入口点的 HTMLDivElement 应该是响应式的。在每次调整窗口大小时,它都会根据当前窗口大小进行调
我有一个简单的传单热图示例,其中包含数据(超过 10,000 行)。但它没有产生应有的梯度热图。 演示在 http://shafiqmustapa.my/test.html heatmap没有根据va
我是一名优秀的程序员,十分优秀!