标签: heatmap

如何反转seaborn热图彩色条的颜色

我使用热图来显示混淆矩阵.我喜欢标准颜色,但我希望浅橙色为0,深紫色为最高值.

我设法只使用另一组颜色(从浅到深的紫罗兰色),设置:

colormap = sns.cubehelix_palette(as_cmap=True)
ax = sns.heatmap(cm_prob, annot=False, fmt=".3f", xticklabels=print_categories, yticklabels=print_categories, vmin=-0.05, cmap=colormap)
Run Code Online (Sandbox Code Playgroud)

但我想保留这些标准的.这是我的代码和我得到的图像.

ax = sns.heatmap(cm_prob, annot=False, fmt=".3f", xticklabels=print_categories, yticklabels=print_categories, vmin=-0.05)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

colors heatmap seaborn

17
推荐指数
3
解决办法
1万
查看次数

高度图生成算法?

我正在环顾互联网,无法找到解决此特定问题的完美算法:

我们的客户有一组点数和重量数据以及每个点,如下图所示:

加权点http://chakrit.net/files/stackoverflow/so_heightmap_points.png

其中,我们有一个GIS程序,可以从这些点和它们的重量值生成"高度图"或一种地形数据但是因为我们有近千个数据点并且这些将随着时间的推移而变化,我们希望创建我们自己的工具来自动生成这些高度图.

到目前为止,我已经尝试计算每个像素从其到最近数据点的Sqrt((x1 - x2) ^ 2 + (y1 - y2) ^ 2)距离的权重,并将权重和距离因子应用于数据点的颜色,以生成该特定像素的结果渐变颜色:

heightmap结果http://chakrit.net/files/stackoverflow/so_heightmap_result.png

您可以看到某些数据点配置仍然存在问题,并且当存在大量数据点时,算法有时会生成相当多边形的图像.理想的结果应该看起来更像一个省略号,而不像多边形.

这是维基百科关于渐变上升的文章中的一个示例图像,它展示了我想要的结果:

山http://chakrit.net/files/stackoverflow/so_gradient_descent.png

渐变上升算法不是我感兴趣的.我感兴趣的是什么; 是首先计算该图中原始函数的算法,提供具有权重的数据点.

我没有参加拓扑数学课程,但我可以做一些微积分.我想我可能会遗漏一些东西,而且我宁愿迷失在Google搜索框中输入的内容.

我需要一些指示.

谢谢!

gis algorithm arcgis geospatial heatmap

16
推荐指数
2
解决办法
6928
查看次数

类似热图的情节,但对于分类变量

我有大约50个人的三个因素(set1,set2和set3).set1,set2和set3的值是"A","B","C".我想制作一个类似热图的这些数据图,但让图例显示与值相关的颜色(例如,A ='红色',B ='蓝色',C ='黑色').有什么建议?

谢谢.

plot r heatmap ggplot2

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

基于平均权重而不是数据点数量的热图

我正在使用Google API v3制作热图.我举个例子.让我们考虑一下地震的大小.我为每个点分配权重以指定它们的大小.但是谷歌会在缩小时考虑点的密度.一个地方的点数越多,它就越红.例如,如果两个地震发生在彼此的英里范围内,一个是3级,另一个是8级,第一个应该是绿色/蓝色,第二个应该是红色.但是一旦缩小并且两个点在地图中越来越近,谷歌地图会考虑点数而不是权重,因此它看起来是读取的.我希望它是平均值,即(3 + 8)/2=5.5 ......无论代表什么颜色.这可能吗?

heatmap google-maps-api-3

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

R Scatter Plot:符号颜色表示重叠点的数量

当许多点重叠时,散点图很难解释,因为这种重叠会掩盖特定区域中的数据密度.一种解决方案是对绘制点使用半透明颜色,以便不透明区域表示在这些坐标中存在许多观察.

下面是我在R中的黑白解决方案的示例:

MyGray <- rgb(t(col2rgb("black")), alpha=50, maxColorValue=255)
x1 <- rnorm(n=1E3, sd=2)
x2 <- x1*1.2 + rnorm(n=1E3, sd=2)
dev.new(width=3.5, height=5)
par(mfrow=c(2,1), mar=c(2.5,2.5,0.5,0.5), ps=10, cex=1.15)
plot(x1, x2, ylab="", xlab="", pch=20, col=MyGray)
plot(x1, x2, ylab="", xlab="", pch=20, col="black")
Run Code Online (Sandbox Code Playgroud)

使用不透明度来指示点密度的优点

然而,我最近在PNAS中发现了这篇文章,它采用了类似的方法,但使用热图着色而不是不透明度作为重叠点数的指标.这篇文章是Open Access,所以任何人都可以下载.pdf并查看图1,其中包含我想要创建的图形的相关示例.本文的方法部分表明分析是在Matlab中完成的.

为方便起见,这里是上述文章中图1的一小部分:

Flombaum等人的图1. 2013年,PNAS

如何在R中创建一个散点图,使用颜色而不是不透明度作为点密度的指标?

对于初学者,R用户可以install.packages("fields")使用该功能在库中访问此Matlab配色方案tim.colors().

是否有一种简单的方法可以制作出类似于上述文章图1的数字,但是在R?谢谢!

matlab plot r opacity heatmap

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

如何更改R中的heatmap.2颜色范围?

我正在使用gplot生成热图,显示治疗组与配对对照的log2倍变化.使用以下代码:

 heatmap.2(as.matrix(SeqCountTable), col=redgreen(75), 
           density.info="none", trace="none", dendrogram=c("row"), 
            symm=F,symkey=T,symbreaks=T, scale="none") 
Run Code Online (Sandbox Code Playgroud)

我输出了一张真实倍数变化值(即非Row-Z得分)的热图,这是我所追求的,是每个生物学家最喜欢的红黑绿配色方案!

http://i.stack.imgur.com/uhFbP.jpg

log2倍变化的实际范围是-3/+ 7,其中许多值在-2/-1和+ 1/+ 2范围内,分别显示为深红色/绿色(分别).这使整个热图非常暗,难以解释.

  • 有没有办法扭曲颜色渐变,使其线性变小?也就是说,在较小的范围内发生从黑色到非常明亮的梯度?
  • 和/或改变颜色范围是不对称的,即从-3/+ 7开始,如数据那样,而不是当前比例为-7/+ 7,黑色仍然以零为中心?

r colors heatmap

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

如何使R渲染图更快

我们正在使用R来吐出在闪亮的应用程序(网页)上呈现的绘图(热图).目前,我们面临着一个问题,即R渲染绘图需要花费时间来进行计算.让我通过一个人为的例子来表达同样的看法.在这个基本测试用例中,R需要大约17秒的时间来渲染并将热图文件保存为png(数据计算机时间被取出:行和列集群已预先计算)

我想知道有没有办法减少渲染这种情节类型所需的时间.也许我在其他一些常量计算中缺失,这些计算也可以从热图函数中取出.

谢谢!

生成数据

m1 <- matrix(rnorm(500000,mean=15,sd=4),ncol=100)
m2 <- matrix(rnorm(500000,mean=30,sd=3),ncol=100)
m <- cbind(m1,m2)
dim(m)
Run Code Online (Sandbox Code Playgroud)

所有计算的基本热图

png('test_heatmap.png')
system.time(heatmap(m))

user  system elapsed 
29.327   0.637  30.526 
Run Code Online (Sandbox Code Playgroud)

从热图功能中进行聚类:主要是测试绘图渲染时间

> system.time(hcr <- hclust(dist(m)))
   user  system elapsed 
  9.992   0.126  10.144 
> system.time(hcc <- hclust(dist(t(m))))
   user  system elapsed 
  0.659   0.002   0.662 
> system.time(ddr <- as.dendrogram(hcr))
   user  system elapsed 
  0.498   0.010   0.508 
> system.time(ddc <- as.dendrogram(hcc))
   user  system elapsed 
  0.011   0.000   0.011 
Run Code Online (Sandbox Code Playgroud)

热图渲染时间与预先计算的行/列树形图

png('test_heatmap.png')
> system.time(heatmap(m,Rowv=ddr,Colv=ddc))
   user  system elapsed 
 16.128   0.558  17.171 
Run Code Online (Sandbox Code Playgroud)

r render time-complexity heatmap shiny

16
推荐指数
1
解决办法
1725
查看次数

在热图中设置距离矩阵和聚类方法

heatmap.2默认为dist用于计算距离矩阵和hclust用于聚类.现在有人怎么设置dist来使用欧几里德方法和hclust来使用质心方法?我提供了一个可编译的代码示例.我尝试过:distfun = dist(method ="euclidean"),但这不起作用.有任何想法吗?

library("gplots")
library("RColorBrewer")

test <- matrix(c(79,38.6,30.2,10.8,22,
81,37.7,28.4,9.7,19.9,
82,36.2,26.8,9.8,20.9,
74,29.9,17.2,6.1,13.9,
81,37.4,20.5,6.7,14.6),ncol=5,byrow=TRUE)
colnames(test) <- c("18:0","18:1","18:2","18:3","20:0")
rownames(test) <- c("Sample 1","Sample 2","Sample 3", "Sample 4","Sample 5")
test <- as.table(test)
mat=data.matrix(test)

heatmap.2(mat,
dendrogram="row",
Rowv=TRUE,
Colv=NULL,
distfun = dist,
hclustfun = hclust,
xlab = "Lipid Species",
ylab = NULL,
colsep=c(1),
sepcolor="black",
key=TRUE,
keysize=1,
trace="none",
density.info=c("none"),
margins=c(8, 12),
col=bluered
)
Run Code Online (Sandbox Code Playgroud)

r distribution heatmap hclust

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

如何使用Cal-Heatmap创建连续的类Github日历?

我刚刚开始使用cal-heatmap创建一个类似Github的日历(例如,一年中每一天的热图以块为单位).理想情况下,我希望它看起来像这样:

目标热图

不幸的是,通过我的设置,我不断得到更多的东西:

目前的丑闻

当前问题是几个月之间的空白,例如,中间存在白色块.我认为这个问题将是与the domain,the subdomain,and,and the rangeand rowLimit; 但我不能100%确定应该是什么组合.我试过几个 - 这是我目前的设置:

    (function($) {
        $(document).ready(function() {

            var cal = new CalHeatMap();
            cal.init({
                start: new Date(2013, 0), // January 1, 2013
                maxDate: new Date(),
                range: 12,
                rowLimit: 7,
                domain: "month",
                subDomain: "day",
                data: "/api/users/1/annotations/",
                cellSize: 12
            });

        });
    })(jQuery);
Run Code Online (Sandbox Code Playgroud)

我很确定这是可能的; 我想问题是,是否可以使用月/年域,以及我需要使用哪些设置来实现它.

编辑2014年1月27日:根据@kamisama的说法,我已经尽可能接近了.这是我目前的设置:

    cal.init({
        start: oneYearAgo(),
        maxDate: new Date(),
        range: 1,
        rowLimit: 7,
        domain: "year",
        subDomain: "day",
        data: "/api/users/1/annotations/",
        cellSize: 10.5
    });
Run Code Online (Sandbox Code Playgroud)

哪个可以得到这样的东西:

不是很好,但我觉得还不错

没有月份标签,也没有星期几的标签.

javascript jquery calendar heatmap d3.js

15
推荐指数
2
解决办法
4999
查看次数

自定义注释Seaborn Heatmap

我在Python中使用Seaborn来创建Heatmap.我能够使用传入的值来注释单元格,但是我想添加表示单元格意味着什么的注释.例如,0.000000我不想仅仅看到,而是希望看到相应的标签,例如"Foo"或0.000000 (Foo).

热图功能的Seaborn文档有点神秘,我相信参数是关键所在:

annot_kws : dict of key, value mappings, optional
  Keyword arguments for ax.text when annot is True.
Run Code Online (Sandbox Code Playgroud)

我尝试设置annot_kws值的别名字典,即{'Foo' : -0.231049060187, 'Bar' : 0.000000}等,但我得到一个AttributeError.

这是我的代码(我在这里手动创建了数据数组以实现可重现性):

data = np.array([[0.000000,0.000000],[-0.231049,0.000000],[-0.231049,0.000000]])
axs = sns.heatmap(data, vmin=-0.231049, vmax=0, annot=True, fmt='f', linewidths=0.25)
Run Code Online (Sandbox Code Playgroud)

当我不使用annot_kws参数时,这是(工作)输出:

工作输出

在这里,当我在堆栈跟踪包括annot_kwsPARAM:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-57-38f91f1bb4b8> in <module>()
     12 
     13 
---> 14 axs = sns.heatmap(data, vmin=min(uv), vmax=max(uv), annot=True, annot_kws=kws, linewidths=0.25)
     15 concepts

/opt/anaconda/2.3.0/lib/python2.7/site-packages/seaborn/matrix.pyc …
Run Code Online (Sandbox Code Playgroud)

python heatmap seaborn

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