【发布时间】:2015-10-26 19:41:27
【问题描述】:
我讨厌创建一个新帖子来问这个问题,但由于我还是新手,我还不能对帖子发表评论。
我基本上和dc.js - min value from group per day有同样的问题
但由于 jsfiddle 不再启动,我看不出他们是如何解决问题的。
var data = [
{category: 'A', ..., amount: '13', categoryCount: 1},
{category: 'A', ..., amount: '13', categoryCount: 0},
{category: 'B', ..., amount: '10', categoryCount: 1},
{category: 'A', ..., amount: '3', categoryCount: 1},
{category: 'C', ..., amount: '27', categoryCount: 1},
{category: 'A', ..., amount: '11', categoryCount: 1},
{category: 'B', ..., amount: '18', categoryCount: 2},
{category: 'C', ..., amount: '19', categoryCount: 1},
{category: 'C', ..., amount: ' ', categoryCount: 1},
{category: 'C', ..., amount: '22', categoryCount: 1}
];
我想要一个包含每个类别的最小值(和最大值)的面积图。
我现在有
var bar_graph = dc.barChart("#bar_chart");
var bar_graphDim = ndx.dimension(function(d) {return d.category;});
var bar_graphGroup = bar_graphDim.group().reduceSum(d.categoryCount);
var dateDimGroup = reductio().min(function (d) { return +d.amount; })(bar_graphDim.group());
var dateDimFGroup = remove_empty_bins(dateDimGroup);
bar_graph
.width(150).height(60)
.dimension(bar_graphDim)
.group(dateDimFGroup)
.valueAccessor(function(d) {return d.value.min;}) //added a solution
.renderHorizontalGridLines(true)
.gap(2)
.x(d3.scale.ordinal())
.xUnits(dc.units.ordinal)
.elasticY(true)
.elasticX(true)
.yAxisLabel("counts");
var bar_graphGroupMax = bar_graphDim.group().reduceSum(d.categoryCount);
var dateDimGroupMax = reductio().min(function (d) { return +d.amount; })(bar_graphDim.group());
var dateDimFGroupMax = remove_empty_bins(dateDimGroupMax);
bar_graphMax
.width(150).height(60)
.dimension(bar_graphDim)
.group(dateDimFGroupMax)
.valueAccessor(function(d) {return d.value.max;})
.renderHorizontalGridLines(true)
.gap(2)
.x(d3.scale.ordinal())
.xUnits(dc.units.ordinal)
.elasticY(true)
.elasticX(true)
.yAxisLabel("counts");
【问题讨论】:
-
到目前为止你尝试过什么?如果您已经有了维度和组,那么链接问题中的答案非常全面。如果您卡在前面的步骤中,请告诉我们您到目前为止做了什么,哪些没有奏效,人们会尽最大努力提供帮助。
-
我试过了: var dateDim = fact.dimension(function (d) {return d3.time.day(d.date);}); var dateDimGroup = reductio().min(function (d) { return d.amount; })(dateDim.group());但这并没有做到。我不知道该怎么办......
-
所以 dateDimGroup.all() 没有给你每天的最低限度?我希望它能做到这一点。或者您不确定如何将其放入 dc.js 图表中?
-
顺便说一句,看起来你的 d.amount 是一个字符串,所以你实际上想要
var dateDimGroup = reductio().min(function (d) { return +d.amount; })(dateDim.group());以便它把它排序为一个数字。 -
我添加了数据以更好地反映我所拥有的内容,并在问题中添加了代码。我错过了什么?我收到错误“Uncaught TypeError: a.group.all is not a function (dc.min.js:20)”
标签: javascript d3.js graph charts dc.js