【问题标题】:DC charts - Customize ordinal x axis labelsDC 图表 - 自定义序数 x 轴标签
【发布时间】:2014-06-18 18:28:48
【问题描述】:

所以,我有以下 json 数据集的 dc 条形图(简化视图):

[{"p":0,"d":0, "M":435},{"p":1, "d":2, "M":574},{"p":0, "d":1, "M":687}...]

理想情况下,我应该有platform 而不是pdevice 而不是d,然后相应地,平台的0 将是mobile,平台的1 将是@ 987654329@ 和类似的设备。我已将这些名称替换为字母和数字,以便请求更小的 json 文件。 (我的数据集非常庞大!)M 是我想要求和的指标。

我创建了一个直流条,您可以在下面的代码中看到:

var pfmValue = facts.dimension(function(d) {return d.p;});
var pfmValueGroupSum = pfmValue.group().reduceSum(function(d) {return d.M;});

barChart.width(280)
.height(200)
.margins({top: 10, right: 10, bottom: 20, left: 80})
.dimension(pfmValue)                                
.group(pfmValueGroupSum)                            
.transitionDuration(800)
.centerBar(true)    
.gap(120)                                            
.x(d3.scale.ordinal().domain(["0", "1"])) ---> I want this to display "mobile" and "corewebsite" instead!
.elasticY(true)
.xUnits(dc.units.ordinal);

如何自定义我的d3.scale.ordinal().domain 以便在 x 轴上显示实际名称? 谢谢!

另外,任何关于如何压缩我的 json 文件的建议都将不胜感激。

编辑1: 我使用了以下内容:

.x(d3.scale.ordinal().domain(data.map(function (d){ if (d.p = 0) {return "Corewebsite";} else if (d.p = 1) {return "mobile";}; })))

这让它显示了 x 轴所需的标签,但是条形图彼此重叠,而标签看起来很好。有什么解决方法吗?

编辑2: 了解到我之前对这个功能的理解是有缺陷的。尽管如此,即使以下给出了与上述相同的结果(Edit1):

.x(d3.scale.ordinal().range([0,1]).domain(["corewebsite", "mobile"]))

【问题讨论】:

    标签: javascript json d3.js dc.js crossfilter


    【解决方案1】:

    标签重叠的原因是它们彼此太靠近。原因是宽度太小了。这些可能是可能的解决方案:

    【讨论】:

    • 嘿猫王。我更新了我的问题;我明白这可能是如何误导的。标签本身很好。图表的条形图彼此重叠。我该如何摆脱它,并将条形放置在标签所在的位置?谢谢。
    猜你喜欢
    • 2014-09-20
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 1970-01-01
    • 2013-09-25
    • 2014-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多