首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dimple.js聚合非数值

dimple.js聚合非数值
EN

Stack Overflow用户
提问于 2015-05-07 00:11:10
回答 2查看 514关注 0票数 1

假设我的csv正好包含一个列Name,下面是前几个值:

代码语言:javascript
复制
Name
A
B
B
C
C
C
D

现在,我希望使用dimple.js创建一个条形图,它显示Name的分布(即每个不同的Name的计数),但在没有每个名称的实际计数的情况下,我无法找到在酒窝中这样做的方法。我查阅了chart.addMeasureAxis( https://github.com/PMSI-AlignAlytics/dimple/wiki/dimple.chart#addMeasureAxis)的文档,发现对于度量值参数:

度量衡(必需):这应该是来自数据的字段名。如果字段包含数值,它们将被聚合,如果它包含任何非数字值,则将使用不同的值计数。

从根本上说,这并不重要,每个类别发生了多少次,酒窝只是把它们当作发生了一次??

我尝试了下面的chart.addMeasureAxis('y', 'Name'),结果是一个条形图,每个条形图的值都为1 (即每个名称只发生一次)。

有没有一种在不改变数据集的情况下实现这一目标的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-07 11:36:57

您确实需要数据中区分行的其他内容:

例如:

代码语言:javascript
复制
Type    Name
X       A
Y       A
Z       A
X       B
Y       B
A       C

你可以这样做:

代码语言:javascript
复制
chart.addCategoryAxis("x", "Name");
chart.addMeasureAxis("y", "Type");

或在以下内容中加上计数:

代码语言:javascript
复制
Name    Count
A       1
A       1
A       1
B       1
B       1
C       1

那就只是

代码语言:javascript
复制
chart.addCategoryAxis("x", "Name");
chart.addMeasureAxis("y", "Count");

但是没有办法只用名字来做。

票数 2
EN

Stack Overflow用户

发布于 2016-07-21 15:13:29

希望这有帮助..。首先,使用d3.nest()获取数据集的唯一值。然后将每个不同值的计数添加到新创建的对象中。

代码语言:javascript
复制
var countData = d3.nest()
    .key(function (d) {
        return d["name];
    })
    .entries(yourDate);

countData.forEach(function (c) {
    c.count = c.values.length;
});

在此之后,从新的"countData对象“创建了酒窝图

代码语言:javascript
复制
var myChart = new dimple.chart(svg, countData); 

“x”和“y”轴,

代码语言:javascript
复制
myChart.addCategoryAxis("x", "key");
myChart.addMeasureAxis("y", "count");

请查看d3.nest()以了解"countData“对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30089791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档