【问题标题】:D3 ColorBrewer Coloring on Dynamic ScalesD3 ColorBrewer 在动态比例上着色
【发布时间】:2014-02-22 18:29:38
【问题描述】:

我正在使用位于 D3 顶部的 dc.js。问题是我所有的图表都有相同的颜色条,例如:

为不同的颜色设置域并不容易,因为我的图表都不是静态的,x/y 轴上的值总是不同的。我怎么能告诉图表动态更改每个组的颜色?上面的示例代码如下所示:

 var chart = dc.barChart(elm);
 chart.barPadding(0.1)
 chart.outerPadding(0.05)
 chart.brushOn(false)
 chart.x(d3.scale.ordinal());
 chart.xUnits(dc.units.ordinal);
 chart.elasticY(true);
 chart.width(250).height(250)
 chart.render();

我尝试添加类似的内容:

 chart.range(colorbrewer.RdBu[9]);

但随后所有图表也会变成相同的颜色。

谢谢!

【问题讨论】:

    标签: javascript d3.js dc.js colorbrewer


    【解决方案1】:

    我相信你想要这样的东西:

    chart.colors(d3.scale.category20b());
    

    为每个条形指定颜色。如果您希望根据条形数据的值选择颜色:

    chart.colorAccessor(function(d, i){return i;})
    

    这里记录了这些方法和更多方法:https://github.com/dc-js/dc.js/blob/master/web/docs/api-latest.md#color-mixin

    【讨论】:

    • 哇,太容易了。我不知道我怎么忽略了这一点。感谢您的建议。
    • FWIW 我发现非常有用的东西是 DC demo pageannotated source
    • 关于 DC 的另一个问题,为什么行图的动画效果很好,但条形图只是出现了?
    • 我不确定。我会尝试在渲染器中添加过渡:github.com/dc-js/dc.js/blob/master/web/docs/…
    • 注意:如果使用 colorbrew,您需要执行以下操作:chart.ordinalColors(colorbrewer["GrBlu"][size]) 而不仅仅是颜色
    猜你喜欢
    • 2016-05-01
    • 2016-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    相关资源
    最近更新 更多