标签: heatmap

MapServer/OpenLayers的好例子

我想说服一些客户使用MapServer和OpenLayers.请有人建议有吸引力的网站来展示可能性!

客户将对以下方面印象深刻:

  • 密度图(也称为热图,颜色阴影格覆盖,等高线图...).
  • 用户能够以某种格式(例如netCDF)下载密度图的基础数据,仅限于正在查看的区域.
  • 标准OpenLayers的东西.缩放,平移,比例尺,概览图......
  • 不同的基础层.可能是WMS,Google,Bing ......
  • 搜索地名,平移地图以显示地点.
  • 公开热图数据以供其他人在mashup中用作WMSWCS

MapServer.org已经备份但是demo.mapserver.org现在似乎已经关闭了:(但是从内存中他们的示例没有"哇"因素.OpenLayers示例演示了每个示例只有一两个功能 - 我想要一些东西通过在一个示例中显示所有功能来使客户惊叹.

PS如果您有一些使用其他开源工具的好例子,请务必发布它们.但请注意JavaScript:客户说没有富客户端.

编辑来吧StackOverflow,有人必须有一个使用密度图的例子?? 我现在甚至提供赏金......

gis mapping mapserver openlayers heatmap

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

计算一系列值的RGB值以创建热图

我正在尝试用python创建一个热图.为此,我必须为可能值范围内的每个值分配RGB值.我想把颜色从蓝色(最小值)变为绿色到红色(最大值).

下面的图片示例解释了我如何考虑颜色组成:我们的范围从1(纯蓝色)到3(纯红色),2之间的颜色类似于绿色.

颜色成分RGB范围(1-3)

我读到了线性插值并编写了一个函数(或多或少)处理最小值和最大值之间的某个值的计算并返回RGB元组.它使用ifelif条件(这不会让我完全开心):

def convert_to_rgb(minimum, maximum, value):
    minimum, maximum = float(minimum), float(maximum)    
    halfmax = (minimum + maximum) / 2
    if minimum <= value <= halfmax:
        r = 0
        g = int( 255./(halfmax - minimum) * (value - minimum))
        b = int( 255. + -255./(halfmax - minimum)  * (value - minimum))
        return (r,g,b)    
    elif halfmax < value <= maximum:
        r = int( 255./(maximum - halfmax) * (value - halfmax))
        g = int( 255. + -255./(maximum - halfmax) …
Run Code Online (Sandbox Code Playgroud)

python rgb colors heatmap linear-interpolation

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

Heatmap.js无法渲染

我正在尝试将heatmap.js与Google地图集成以进行一些可视化工作.我提到了这个:

http://www.patrick-wied.at/static/heatmapjs/example-heatmap-googlemaps.html

因此,我本地示例中的代码看起来几乎相同:

<!DOCTYPE html>
<html lang="en">
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">    </script>
<div id="heatmapArea" style="width:1024px;padding:0;height:768px;cursor:pointer;position:relative;"></div>
<script type="text/javascript" src="js/jquery-1.8.2.js"></script>
<script type="text/javascript" src="js/heatmap.js"></script>
<script type="text/javascript" src="js/heatmap-gmaps.js"></script>
<script type="text/javascript">
    window.onload = function(){
    // standard gmaps initialization
    var myLatlng = new google.maps.LatLng(48.3333, 16.35);
    // define map properties
    var myOptions = {
      zoom: 3,
      center: myLatlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      disableDefaultUI: false,
      scrollwheel: true,
      draggable: true,
      navigationControl: true,
      mapTypeControl: false,
      scaleControl: true,
      disableDoubleClickZoom: false
    };
    // we'll use the heatmapArea 
    var map = new google.maps.Map($("#heatmapArea")[0], myOptions);

    // let's …
Run Code Online (Sandbox Code Playgroud)

javascript jquery google-maps heatmap

21
推荐指数
1
解决办法
5017
查看次数

如何给sns.clustermap一个预先计算的距离矩阵?

通常当我做树形图和热图时,我使用距离矩阵并做一堆SciPy东西.我想尝试SeabornSeaborn想要我的数据是矩形的(行=样本,cols =属性,而不是距离矩阵)?

我本质上想seaborn用作后端来计算我的树形图并将其粘贴到我的热图上.这可能吗?如果没有,这可能是未来的特色.

也许有我可以调整的参数,所以它可以采用距离矩阵而不是矩形矩阵?

这是用法:

seaborn.clustermap¶
seaborn.clustermap(data, pivot_kws=None, method='average', metric='euclidean',
 z_score=None, standard_scale=None, figsize=None, cbar_kws=None, row_cluster=True,
 col_cluster=True, row_linkage=None, col_linkage=None, row_colors=None,
 col_colors=None, mask=None, **kwargs)
Run Code Online (Sandbox Code Playgroud)

我的代码如下:

from sklearn.datasets import load_iris
iris = load_iris()
X, y = iris.data, iris.target
DF = pd.DataFrame(X, index = ["iris_%d" % (i) for i in range(X.shape[0])], columns = iris.feature_names)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我不认为我的方法在下面是正确的,因为我给它一个预先计算的距离矩阵,而不是它要求的矩形数据矩阵.没有关于如何使用相关/距离矩阵的示例,clustermap但有https://stanford.edu/~mwaskom/software/seaborn/examples/network_correlations.html,但排序没有与普通sns.heatmap功能集群.

DF_corr = DF.T.corr()
DF_dism = 1 - DF_corr
sns.clustermap(DF_dism)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python hierarchical-clustering matplotlib heatmap seaborn

21
推荐指数
1
解决办法
6442
查看次数

响应式热图

问题

我遇到了一个小问题,我编写了一些代码,其中我已经自动化了一个脚本来跟踪用户与 UI 的交互,包括mousemove&click事件。如果我不必担心让它响应,那么我可能会称之为一天并交付我已经完成的工作,但是我的大脑正在寻找一些巫术知识,我正在努力使其超级响应. 这只是我正在做的事情的一个简单示例,它不是天才,如果有的话,主要是heatmap.js正在做繁重的工作。目前我只是想看看我是否可以将其作为概念证明而不是其他任何东西......

热图示例

编码

所以目前,我正在跟踪event.pageX&event.pageY值以准确存储事件发生的位置,我也在存储window.innerWidth&window.innerHeight值以尝试和计算出一些允许我根据大小偏移位置的函数其他设备。

例如,如果您查看上面的示例图像,这对于静态页面来说是完美的,但是如果我要说使页面更窄一点,您可以在这里看到它与上面的图像不一致:

热图偏移示例

无论如何,不​​用多说,下面是一些示例代码:

// A lot of other code...

var setupHeatMaps = function (pages, heatMaps) {
  pages.forEach(function (page) {
    page.addEventListener("click", function (event) {
      heatMaps.push({ x: event.pageX, y: event.pageY, value: 10000 });
      onStateChange();  
    });

    // Don't collect ALL mouse movements, that'd be crazy, so collect 
    // every 1/10 mouse movements.
    var counter = …
Run Code Online (Sandbox Code Playgroud)

javascript performance heatmap

20
推荐指数
1
解决办法
515
查看次数

将多个复杂图形组合在一个图中作为面板

@backlin介绍

通过使用layout或,可以将多个简单绘图组合成单个图形中的面板par(mfrow=...).但是,更复杂的图表往往会在内部设置自己的面板布局,从而无法将其用作面板.有没有办法创建嵌套布局并将复杂的图形封装到单个面板中?

我有一种感觉,grid包可以实现这一点,例如通过在单独的视口中绘制面板,但无法弄清楚如何.这是一个演示问题的玩具示例:

my.plot <- function(){
    a <- matrix(rnorm(100), 10, 10)
    plot.new()
    par(mfrow=c(2,2))
    plot(1:10, runif(10))
    plot(hclust(dist(a)))
    barplot(apply(a, 2, mean))
    image(a)
}
layout(matrix(1:4, 2, 2))
for(i in 1:4) my.plot()
# How to avoid reseting the outer layout when calling `my.plot`?
Run Code Online (Sandbox Code Playgroud)

原创问题来自@alittleboy

我使用包中的heatmap.2函数gplots来生成热图.以下是单个热图的示例代码:

library(gplots)
row.scaled.expr <- matrix(sample(1:10000),nrow=1000,ncol=10)
heatmap.2(row.scaled.expr, dendrogram ='row',
          Colv=FALSE, col=greenred(800), 
          key=FALSE, keysize=1.0, symkey=FALSE, density.info='none',
          trace='none', colsep=1:10,
          sepcolor='white', sepwidth=0.05,
          scale="none",cexRow=0.2,cexCol=2,
          labCol = colnames(row.scaled.expr),                 
          hclustfun=function(c){hclust(c, method='mcquitty')},
          lmat=rbind( c(0, 3), c(2,1), c(0,4) ), …
Run Code Online (Sandbox Code Playgroud)

layout plot r heatmap

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

库根据点值生成热图贴图叠加而不是点密度

我有一组数据点,每个点表示为lat/lng.这些点中的每一个都具有与之相关的值,该值随时间而变化.我想在地图上生成一个热图动画叠加层,以反映这段时间内价值的变化.注意:我可以生成一系列静态"快照"并将它们逐帧拼接到动画中,因此热图库本身不必支持动画.

我的第一次尝试是使用HeatMapLayer,它是Google Maps可视化库的一部分.然而,根据基于平均权重而不是数据点数量的热图问题,似乎这个特定的可视化库坚持在确定在给定点周围使用什么颜色时权重点的密度.

我的解决方案只考虑点的值而不是密度.举个例子,假设一个人希望可视化一个城市的环境温度,但是城市的某些部分安装的温度计比其他部分要多.您不希望安装了许多温度计的小区域因为有许多温度计而显示红色 - 您只希望它在那里很热时显示红色.

基本上,我希望每个点的单一颜色反映点的值的强度,然后是任意两点颜色之间的梯度空间过渡.它不一定是谷歌地图 - 关键标准是i)必须基本颜色关闭点值而不是点密度ii)必须覆盖在地图上,iii)理想情况下有一个编程抽象,以lat/lng的方式进行讨论,而不是需要手动转换为例如欧几里德空间.

google-maps map heatmap

19
推荐指数
1
解决办法
1375
查看次数

一个colorbar用于subplot中的seaborn heatmaps

这是一个显示每个子图的颜色条的示例:

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.random((10,10,)))

fig,axn = plt.subplots(2, 2, sharex=True, sharey=True)

for ax in axn.flat:
    sns.heatmap(df, ax=ax)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如何删除每个子图的颜色条?我想只有一个垂直或水平方向的颜色条.我知道我可以访问每个颜色条轴fig.get_axes()[:-4],但是如何从图中完全删除它们呢?我不认为在调用热图时可以选择不绘制颜色条.

python matplotlib heatmap seaborn

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

在seaborn heatmap上设置颜色条的最大值

我需要将seaborn heatmap的最大值设置cbar为2.我尝试过:

cbar_kws = { 'ticks' : [0, 2] }
sns.heatmap(tiles, robust=True, fmt="f", cmap= 'RdBu_r', cbar_kws = cbar_kws)
Run Code Online (Sandbox Code Playgroud)

但这不起作用,文档也不是很清楚.我该怎么做呢?

python matplotlib heatmap seaborn

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

如何在不添加“刻度”的情况下从下到上移动标签

我如何使用“tick_top”以外的其他东西将 xlabel 定位在图的顶部 - 这会为 x 标签添加一个勾号,而我不想要它。

底部的 xlabel 没有勾号: 在此处输入图片说明

代码:

import numpy as np; np.random.seed(0)
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
uniform_data = np.random.rand(10, 12)
ax = sns.heatmap(uniform_data, vmin=0, vmax=1)
plt.yticks(rotation=0)
plt.show()
Run Code Online (Sandbox Code Playgroud)

xlabel 在顶部但带有勾号: 在此处输入图片说明

代码:

import numpy as np; np.random.seed(0)
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
uniform_data = np.random.rand(10, 12)
ax = sns.heatmap(uniform_data, vmin=0, vmax=1)
plt.yticks(rotation=0)
ax.xaxis.tick_top() # x axis on top
ax.xaxis.set_label_position('top')
plt.show()
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib heatmap seaborn

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