我正试图用dc.js制作一个气泡图。它应该显示每个项目类型的总数量。因此,y轴有数字域,x轴有字符串值域。这些字符串值是事先不知道的,而是从数据库中提取的,所以我不知道如何定义x域。
这是我的密码
var itemChart = dc.bubbleChart('#item-chart');
//the data
var data = [{
date: "2015-01-01",
itemType: "bags",
quantity: 3
}];
var items = crossfilter(data);
var parseDate = d3.time.format("%Y-%m-%d").parse;
data.forEach(function (d) {
d.date = parseDate(d.date);
d.month = d.date.getMonth();
d.year = d.date.getFullYear();
//d.day = ((d.date.getFullYear() == 0) ? 'Sunday' : ((d.date.getFullYear() == 1) ? 'Monday' : ((d.date.getFullYear() == 2) ? 'Tuesday' : ((d.date.getFullYear() == 3) ? 'Wednesday' : ((d.date.getFullYear() == 4) ? 'Thursday' : ((d.date.getFullYear() == 5) ? 'Friday' : 'Sunday'))))));
d.itemType = d.itemType;
d.quantity = +d.quantity;
});
var itemTypeDim = items.dimension(function (d) {
return d.itemType;
});
var itemTypeProd = itemTypeDim.group().reduceSum(function(d) {
return d.quantity;
});
var prod = yearDim.group().reduceSum(function (d) {
return d.quantity;
});
var rangeVal = [-10, d3.max(itemTypeProd.all(), function(d) { return d.value.quantity; }) ];
itemChart
.width(990)
.height(250)
.transitionDuration(1500)
.margins({top: 10, right: 50, bottom: 30, left: 40})
.dimension(itemTypeDim)
.group(itemTypeProd);
.keyAccessor(function (d){
return d.value.itemType;
})
.valueAccessor(function (d){
return d.value.quantity;
})
.radiusValueAccessor(function (d){
return d.value.quantity;
})
.maxBubbleRelativeSize(0,3)
.elasticX(true)
.elasticY(true)
.yAxisPadding(100)
.xAxisPadding(500)
.renderHorizontalGridLines(true)
.renderVerticalGridLines(true)
.xAxisLabel('Item Type')
.yAxisLabel('Total Quantity')
.renderLabel(true)
.label(function (p) {
return p.key;
})
.renderTitle(true)
.title(function (p){
return [
p.key,
'itemType: ' + p.value.customer,
'Quantity:' + p.value.quantity
].join('\n');
});
dc.renderAll();发布于 2015-10-08 12:04:28
有趣的是,大多数人使用条形图来计算序数值。我不确定这个气泡图的用例是否已经被充分探索过,但是它应该能工作,因为序数x尺度支持是在坐标网格混合层。
你至少想要
.x(d3.scale.ordinal())https://github.com/dc-js/dc.js/blob/develop/web/docs/api-latest.md#dc.coordinateGridMixin+x https://github.com/mbostock/d3/wiki/Ordinal-Scales
请告诉我们结果如何!
https://stackoverflow.com/questions/33006285
复制相似问题