标签: heatmap

使用<canvas>元素创建热图?

是否有任何JavaScript库允许您使用浏览器内的图形渲染功能(如<canvas>SVG)创建热图?

我知道HeatMapAPI.com,但他们的热图是在服务器端生成的.我认为在<canvas>元素时代,我们不再需要它了!

如果还没有这样的话,是否有志愿者参与创建这样的工具?

html javascript canvas heatmap

27
推荐指数
1
解决办法
2万
查看次数

R(热图与热图2)中热图/聚类默认值的差异?

我比较R中树状图,一个与创建热图的两个方面made4heatplot,一个用gplotsheatmap.2.适当的结果取决于分析,但我试图理解为什么默认值是如此不同,以及如何让两个函数给出相同的结果(或高度相似的结果),以便我理解所有'blackbox'参数进入这个.

这是示例数据和包:

require(gplots)
# made4 from bioconductor
require(made4)
data(khan)
data <- as.matrix(khan$train[1:30,])
Run Code Online (Sandbox Code Playgroud)

使用heatmap.2对数据进行聚类得出:

heatmap.2(data, trace="none")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

使用heatplot给出:

heatplot(data)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

最初的结果和缩放非常不同.heatplot在这种情况下,结果看起来更合理,所以我想了解要用heatmap.2它来做同样的参数,因为heatmap.2我有其他优点/功能我想使用,因为我想了解缺少的成分.

heatplot使用具有相关距离的平均链接,以便我们可以将其输入heatmap.2以确保使用类似的聚类(基于:https://stat.ethz.ch/pipermail/bioconductor/2010-August/034757.html)

dist.pear <- function(x) as.dist(1-cor(t(x)))
hclust.ave <- function(x) hclust(x, method="average")
heatmap.2(data, trace="none", distfun=dist.pear, hclustfun=hclust.ave)
Run Code Online (Sandbox Code Playgroud)

导致: 在此输入图像描述

这使得行侧树状图看起来更相似但是列仍然不同,因此比例也是如此.看来,heatplot默认情况下,以某种方式缩放列,默认情况下heatmap.2不会这样做.如果我向heatmap.2添加行缩放,我得到:

heatmap.2(data, trace="none", distfun=dist.pear, hclustfun=hclust.ave,scale="row")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

它仍然不相同但更接近.我怎样才能重现heatplot结果heatmap.2?有什么区别?

edit2:看起来关键的区别在于使用以下方法重新heatplot调整行和列的数据:

if (dualScale) {
    print(paste("Data (original) range: …
Run Code Online (Sandbox Code Playgroud)

r cluster-analysis hierarchical-clustering heatmap bioconductor

27
推荐指数
1
解决办法
4万
查看次数

ggplot2热图,带有远程值的颜色

我想在ggplot2中制作热图.我的玩具数据和代码是:

set.seed(12345)
dat <- 
  data.frame(
      Row = rep(x = LETTERS[1:5], times = 10)
    , Col = rep(x = LETTERS[1:10], each = 5)
    , Y = rnorm(n = 50, mean = 0, sd = 1)
    )
library(ggplot2)
p <- ggplot(data =  dat, aes(x = Row, y = Col)) + 
      geom_tile(aes(fill = Y), colour = "white") +
      scale_fill_gradient(low = "white", high = "steelblue")
p
Run Code Online (Sandbox Code Playgroud)

我希望为这样的范围值设置颜色方案:

-3 <= Y < -2  ---> Dark Blue
-2 <= Y < -1  ---> Blue
-1 <= …
Run Code Online (Sandbox Code Playgroud)

r heatmap ggplot2

26
推荐指数
2
解决办法
5万
查看次数

使用ggplot2将显着性水平添加到矩阵相关热图

我想知道如何为矩阵相关热图添加另一层重要且需要的复杂性,例如除了R2值(-1到1)之外,在显着性水平星的方式之后的p值?
在这个问题中没有意图将显着性水平星或p值作为文本放在矩阵BUT的每个方格上,而不是在矩阵的每个方格上的显着性水平的图形开箱即用表示中.我认为只有那些享受创新思维祝福的人才能赢得掌声,解开这种解决方案,以便有最好的方式来代表我们的"半真半导体相关热图"中复杂的复杂成分.我google了很多但从未见过正确或我会说"眼睛友好"的方式来表示显着性水平加上反映R系数的标准色调.
可重现的数据集可在此处找到:
http://learnr.wordpress.com/2010/01/26/ggplot2-quick-heatmap-plotting/
R代码请在下面找到:

library(ggplot2)
library(plyr) # might be not needed here anyway it is a must-have package I think in R 
library(reshape2) # to "melt" your dataset
library (scales) # it has a "rescale" function which is needed in heatmaps 
library(RColorBrewer) # for convenience of heatmap colors, it reflects your mood sometimes
nba <- read.csv("http://datasets.flowingdata.com/ppg2008.csv")
nba <- as.data.frame(cor(nba[2:ncol(nba)])) # convert the matrix correlations to a dataframe 
nba.m <- data.frame(row=rownames(nba),nba) # create a column called "row"
rownames(nba) …
Run Code Online (Sandbox Code Playgroud)

r significance heatmap ggplot2 correlation

26
推荐指数
1
解决办法
2万
查看次数

热图中x轴上的对角线标注方向

在R中创建热图已成为许多帖子,讨论和迭代的主题.我的主要问题是将格子levelplot()或基本图形中可用解决方案的视觉灵活性image()与基本heatmap(),pheatmap pheatmap()或gplots'的轻松聚类结合起来很棘手heatmap.2().这是我想要改变的一个小细节 - x轴上标签的对角线方向.让我告诉你我在代码中的观点.

#example data
d <- matrix(rnorm(25), 5, 5)
colnames(d) = paste("bip", 1:5, sep = "")
rownames(d) = paste("blob", 1:5, sep = "")
Run Code Online (Sandbox Code Playgroud)

您可以使用levelplot()以下方法轻松更改方向到对​​角

require(lattice)
levelplot(d, scale=list(x=list(rot=45)))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但应用聚类似乎很痛苦.其他视觉选项也是如此,例如在热图单元格周围添加边框.

现在,转移到实际的heatmap()相关功能,聚类和所有基本视觉效果都非常简单 - 几乎不需要调整:

heatmap(d)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

所以在这里:

require(gplots)
heatmap.2(d, key=F)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

最后,我最喜欢的一个:

require(pheatmap)
pheatmap(d) 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但所有这些都无法旋转标签.手册pheatmap建议我可以使用grid.text自定义标签.真是太高兴 - 尤其是在聚类和更改显示标签的顺序时.除非我在这里遗漏了什么......

最后,还有一件旧货image().我可以旋转标签,一般来说它是最可定制的解决方案,但没有聚类选项.

image(1:nrow(d),1:ncol(d), d, axes=F, ylab="", xlab="")
text(1:ncol(d), 0, srt = 45, labels = rownames(d), xpd …
Run Code Online (Sandbox Code Playgroud)

label r data-visualization heatmap lattice

26
推荐指数
5
解决办法
3万
查看次数

使用seaborn使热图的大小更大

我用seaborn创建了一个热图

df1.index = pd.to_datetime(df1.index)
df1 = df1.set_index('TIMESTAMP')
df1 = df1.resample('30min').mean()
ax = sns.heatmap(df1.iloc[:, 1:6:], annot=True, linewidths=.5)
Run Code Online (Sandbox Code Playgroud)

但问题是,当数据帧中有大量数据时,热图太小而且内部的值开始不清楚,如附图中所示.

如何将热图的大小更改为更大?谢谢在此输入图像描述

编辑

我尝试:

df1.index = pd.to_datetime(df1.index)
fig, ax = plt.subplots(figsize=(10,10))         # Sample figsize in inches
sns.heatmap(df1.iloc[:, 1:6:], annot=True, linewidths=.5, ax=ax)
df1 = df1.set_index('TIMESTAMP')
df1 = df1.resample('1d').mean()
ax = sns.heatmap(df1.iloc[:, 1:6:], annot=True, linewidths=.5)
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

KeyError                                  Traceback (most recent call last)
C:\Users\Demonstrator\Anaconda3\lib\site-packages\pandas\indexes\base.py in get_loc(self, key, method, tolerance)
   1944             try:
-> 1945                 return self._engine.get_loc(key)
   1946             except KeyError:

pandas\index.pyx in pandas.index.IndexEngine.get_loc (pandas\index.c:4154)()

pandas\index.pyx in pandas.index.IndexEngine.get_loc (pandas\index.c:4018)()

pandas\hashtable.pyx …
Run Code Online (Sandbox Code Playgroud)

python heatmap seaborn

26
推荐指数
2
解决办法
6万
查看次数

如何在Seaborn Heatmap颜色条中添加标签?

如果我有以下数据和Seaborn Heatmap:

import pandas as pd
data = pd.DataFrame({'x':(1,2,3,4),'y':(1,2,3,4),'z':(14,15,23,2)})

sns.heatmap(data.pivot_table(index='y', columns='x', values='z'))
Run Code Online (Sandbox Code Playgroud)

如何在颜色条中添加标签?

python heatmap seaborn

26
推荐指数
2
解决办法
2万
查看次数

如何在Calendar Heatmap上使用黑白填充图案而不是颜色编码

我正在使用Paul Bleicher日历热图来随着时间的推移可视化一些事件,我有兴趣添加 黑白填充图案而不是(或在颜色编码之上)以增加日历热图的可读性.黑白打印.

以下是Calendar Heatmap颜色的示例,

日历热图颜色

这是黑白相间的样子,

日历热图黑色和白色

很难区分黑人和白人的各个级别.

是否有一种简单的方法可以让R为6级而不是颜色添加某种模式?

用于以彩色重现Calendar Heatmap的代码.

source("http://blog.revolution-computing.com/downloads/calendarHeat.R")

stock <- "MSFT"
start.date <- "2012-01-12"
end.date <- Sys.Date()

quote <- paste("http://ichart.finance.yahoo.com/table.csv?s=", stock, "&a=", substr(start.date,6,7), "&b=", substr(start.date, 9, 10), "&c=", substr(start.date, 1,4), "&d=", substr(end.date,6,7), "&e=", substr(end.date, 9, 10), "&f=", substr(end.date, 1,4), "&g=d&ignore=.csv", sep="")
stock.data <- read.csv(quote, as.is=TRUE)

# convert the continuous var to a categorical var 
stock.data$by <- cut(stock.data$Adj.Close, b = 6, labels = F)

calendarHeat(stock.data$Date, stock.data$by, varname="MSFT Adjusted Close")
Run Code Online (Sandbox Code Playgroud)

更新02-13-2013 03:52:11Z,添加图案是什么意思, …

plot r visualize heatmap ggplot2

25
推荐指数
3
解决办法
8594
查看次数

如何根据屏幕尺寸重新计算x,y坐标

我有一个热图应用程序和存储我存储点击的x,y坐标以及视口宽度和高度.2次点击的真实数据:

x,   y,   width, height
433, 343, 1257,  959
331, 823, 1257,  959
Run Code Online (Sandbox Code Playgroud)

问题是当我在响应式网站上调整屏幕大小时,显示的点击现在全部关闭.我的搜索结果是空的,但有一个公式或算法可以重新计算不同分辨率的x和y坐标.例如,第一次点击,如果width从去1257990height从云959400,如何重新计算我的X和Y,使他们在同一地点排队?

编辑:我在数据库中添加了2个字段,width_percentage和height百分比来存储x宽度的y百分比和高度的百分比.因此,如果x是433并且屏幕的宽度是1257,那么x距离屏幕的左边缘是35%.然后我对高度使用相同的理论并运行计算,但它没有将点击点缩放到与我相同的位置,尽管百分比将用于缩放分辨率.我通过点击全分辨率1257宽度然后以900宽度重新打开来测试它.请参阅下面的代码以显示较低分辨率的点击点.

Ajax PHP

while ($row = mysql_fetch_array($results)) { 
  if( $_GET['w'] < $row['width'] ) {
    $xcorr = $row['width_percentage'] * $_GET['w'];
    $ycorr = $row['y']; 
  }
}
Run Code Online (Sandbox Code Playgroud)

这使用$_GET变量,在页面加载时传递屏幕分辨率的宽度和高度.然后它从数据库中获取点击点$results.由于我只将分辨率宽度从1257缩放到900,因此我没有计算高度和与初始点击相同的像素.新宽度I乘以百分比,并设置屏幕左侧百分比边距的点.由于百分比为35%,新的x坐标变为900 *.35 = 315px左边缘.它无法正常工作,我仍然摸不着头脑,为响应式网站点击同一位置.

javascript jquery coordinates heatmap

25
推荐指数
3
解决办法
5691
查看次数

加入树状图和热图

我有heatmap(来自一组样本的基因表达):

set.seed(10)
mat <- matrix(rnorm(24*10,mean=1,sd=2),nrow=24,ncol=10,dimnames=list(paste("g",1:24,sep=""),paste("sample",1:10,sep="")))
dend <- as.dendrogram(hclust(dist(mat)))
row.ord <- order.dendrogram(dend)
mat <- matrix(mat[row.ord,],nrow=24,ncol=10,dimnames=list(rownames(mat)[row.ord],colnames(mat)))
mat.df <- reshape2::melt(mat,value.name="expr",varnames=c("gene","sample"))

require(ggplot2)
map1.plot <- ggplot(mat.df,aes(x=sample,y=gene))+geom_tile(aes(fill=expr))+scale_fill_gradient2("expr",high="darkred",low="darkblue")+scale_y_discrete(position="right")+
  theme_bw()+theme(plot.margin=unit(c(1,1,1,-1),"cm"),legend.key=element_blank(),legend.position="right",axis.text.y=element_blank(),axis.ticks.y=element_blank(),panel.border=element_blank(),strip.background=element_blank(),axis.text.x=element_text(angle=45,hjust=1,vjust=1),legend.text=element_text(size=5),legend.title=element_text(size=8),legend.key.size=unit(0.4,"cm"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

(由于plot.margin我正在使用的论据,左侧被切断,但我需要这个,如下所示).

然后,我prunedendrogram根据深度截止值来获得较少的集群(即,只有深深的分裂),并做一些编辑所产生dendrogram有它绘制他们的方式,我希望它:

depth.cutoff <- 11
dend <- cut(dend,h=depth.cutoff)$upper
require(dendextend)
gg.dend <- as.ggdend(dend)
leaf.heights <- dplyr::filter(gg.dend$nodes,!is.na(leaf))$height
leaf.seqments.idx <- which(gg.dend$segments$yend %in% leaf.heights)
gg.dend$segments$yend[leaf.seqments.idx] <- max(gg.dend$segments$yend[leaf.seqments.idx])
gg.dend$segments$col[leaf.seqments.idx] <- "black"
gg.dend$labels$label <- 1:nrow(gg.dend$labels)
gg.dend$labels$y <- max(gg.dend$segments$yend[leaf.seqments.idx])
gg.dend$labels$x <- gg.dend$segments$x[leaf.seqments.idx]
gg.dend$labels$col <- "black"
dend1.plot <- ggplot(gg.dend,labels=F)+scale_y_reverse()+coord_flip()+theme(plot.margin=unit(c(1,-3,1,1),"cm"))+annotate("text",size=5,hjust=0,x=gg.dend$label$x,y=gg.dend$label$y,label=gg.dend$label$label,colour=gg.dend$label$col)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述 我用cowplot's将它们绘制在一起plot_grid:

require(cowplot)
plot_grid(dend1.plot,map1.plot,align='h',rel_widths=c(0.5,1)) …
Run Code Online (Sandbox Code Playgroud)

r dendrogram heatmap ggplot2 cowplot

24
推荐指数
1
解决办法
2300
查看次数