首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图用x-Axis中的字符串值在dc.js中生成气泡图

试图用x-Axis中的字符串值在dc.js中生成气泡图
EN

Stack Overflow用户
提问于 2015-10-08 03:50:30
回答 1查看 465关注 0票数 1

我正试图用dc.js制作一个气泡图。它应该显示每个项目类型的总数量。因此,y轴有数字域,x轴有字符串值域。这些字符串值是事先不知道的,而是从数据库中提取的,所以我不知道如何定义x域

这是我的密码

代码语言:javascript
复制
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();
EN

回答 1

Stack Overflow用户

发布于 2015-10-08 12:04:28

有趣的是,大多数人使用条形图来计算序数值。我不确定这个气泡图的用例是否已经被充分探索过,但是它应该能工作,因为序数x尺度支持是在坐标网格混合层。

你至少想要

代码语言:javascript
复制
.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

请告诉我们结果如何!

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

https://stackoverflow.com/questions/33006285

复制
相关文章

相似问题

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