假设我的csv正好包含一个列Name,下面是前几个值:
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 (即每个名称只发生一次)。
有没有一种在不改变数据集的情况下实现这一目标的方法?
发布于 2015-05-07 11:36:57
您确实需要数据中区分行的其他内容:
例如:
Type Name
X A
Y A
Z A
X B
Y B
A C你可以这样做:
chart.addCategoryAxis("x", "Name");
chart.addMeasureAxis("y", "Type");或在以下内容中加上计数:
Name Count
A 1
A 1
A 1
B 1
B 1
C 1那就只是
chart.addCategoryAxis("x", "Name");
chart.addMeasureAxis("y", "Count");但是没有办法只用名字来做。
发布于 2016-07-21 15:13:29
希望这有帮助..。首先,使用d3.nest()获取数据集的唯一值。然后将每个不同值的计数添加到新创建的对象中。
var countData = d3.nest()
.key(function (d) {
return d["name];
})
.entries(yourDate);
countData.forEach(function (c) {
c.count = c.values.length;
});在此之后,从新的"countData对象“创建了酒窝图
var myChart = new dimple.chart(svg, countData); “x”和“y”轴,
myChart.addCategoryAxis("x", "key");
myChart.addMeasureAxis("y", "count");请查看d3.nest()以了解"countData“对象。
https://stackoverflow.com/questions/30089791
复制相似问题