【问题标题】:dc.js: Setting Categorical Bar Chart X Axis with a Wide Domaindc.js:使用宽域设置分类条形图 X 轴
【发布时间】:2015-07-14 10:08:55
【问题描述】:

我有一个 csv,其中有一列是我想使用 dc.js 在仪表板的 x 轴上设置的类别变量

我知道我可以将 x 轴设置为这个(复制自这个post

.x(d3.scale.ordinal().domain(["", "a", "b", "c"])) // Need empty val to offset first value
.xUnits(dc.units.ordinal) // Tell Dc.js that we're using an ordinal x axis

但是,有什么方法可以用一个可以捕获所有这些的变量替换abc?我的专栏有 20 个不同的类别,我不想手动输入它们。我的代码在下面(专栏是d.geo

var geoValue = ndx.dimension(function (d) {
    return d.geo;
});
var geoGroup = geoValue.group();

geoChart
    .width(960)
    .height(150)
    .margins({top: 10, right: 10, bottom: 20, left: 40})
    .dimension(geoValue)
    .group(geoGroup)
    .transitionDuration(500)
    .gap(10)
    .x(d3.scale.ordinal().domain(SOLUTION GOES HERE))
    .xUnits(dc.units.ordinal)
    .elasticY(true)
    .xAxis().tickFormat();

【问题讨论】:

  • 从 dc.js 2.0 开始,序数域是自动计算的。
  • 你根本不需要打电话给.domain()

标签: javascript d3.js dc.js


【解决方案1】:

我认为以下应该可行

.x(d3.scale.ordinal().domain(geoValue))

以下内容对我有用。我也在为类似的情况而苦苦挣扎

var carTypeDim = ndx.dimension(function(d) { return d["car-type"]; });
carTypeGroup = carTypeDim.group()

carTypeChartBar
  .x(d3.scale.ordinal().domain(carTypeDim)) 
  .xUnits(dc.units.ordinal)
  .dimension(carTypeDim)
  .group(carTypeGroup);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多