微小的JS离散化库,用于表示波形


9

我想知道是否存在一个可以使用的小型stat / discretization js库。

我确实知道jStat的存在(可能会更深入地进行探讨),并且我知道mapfish有一个geostats模块/小部件来创建Choropleth地图-我在这里找到了代码。但是它依赖于openlayers,我希望拥有一个独立的lib,并最终可以自由地与openlayers进行通信。

我想要一些基本方法:

  • 最高
  • 意思
  • 中位数

并能够通过指定类数和精度(十进制)来实现以下离散化:

  • 分位数
  • 等间隔
  • 自然假期(抽搐)

如果尚不存在,我可能会自己编写一些代码,并以免费许可将其发布在github上。欢迎任何资源和建议。


1
这看起来类似于- code.google.com/p/pseudosavant/source/browse/trunk/mathStats/...任何理由与jStat不去?
geographika

确实,您提到的图书馆可能是一个好的开始。为什么不使用jstat?因为我还没有看到离散化方法,所以我实际上一直在优先考虑-统计方法是一种奖励
-simo

Answers:


18

好吧,我昨天编码了一些东西,并根据MIT许可证发布了它。

名为geostats的库可在github上找到。该软件包包括示例。您还可以在http://www.intermezzo-coop.eu/mapping/geostats/上看到它的运行情况(带有具体的Choropleth表示示例)。

它支持上面列出的8种方法:

  • 分位数
  • 等间隔
  • 标准偏差
  • 算术级数
  • 几何级数
  • 自然断裂(Jenks):Jenks分类代码取自Doug Curl
  • 独特价值
  • 用户定义的分类

该库还包括一种以HTML格式呈现图例的方法。请参阅HTML图例示例以查看可用选项(连续,不连续,不同的类)。

分位数分类样本:

分位数分类和图例

唯一值分类示例: 在此处输入图片说明

查看直接从shapefile中读取值演示(使用Marc Harter库)。

如果您想分两步尝试一下,请使用jsconsole

不要复制/粘贴到控制台,第一

load("https://raw.github.com/simogeo/geostats/master/lib/geostats.js");

然后,复制/粘贴:

var data = Array(12, 22, 5, 8, 43, 2, 34, 12, 34, 36, 5, 21, 23, 45, 12, 31, 38); 
serie = new geostats(data); 
serie.getEqInterval(4);
alert('Classification method : ' + serie.method + "\n\nClasses : " + serie.ranges.join(' | '));

请让我知道是否发现任何错误。再次欢迎任何想法或建议来增强图书馆。

就这样!希望它对您也有用。


注意-jsconsole链接实际上指向“ jconsole.com”,这是垃圾邮件发送者的蹲坐。我没有解决此问题所需的业力。任何人都可以更新链接吗?它可能包含恶意代码。
ThibautBarrère'16

1

Zachary Forest Johnson在提供有关openlayers的主题分析方面做得非常出色。

该库已获得BSD许可,可在github上获得。有关该项目和示例的更多说明,请访问他的博客



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.